リボンとかツールバーとか、Excelの様々なカスタマイズについて述べます。
Excel VBAで右クリックメニューを追加する
はじめに Excel VBAではなんと、作成したマクロを、Excelの右クリックメニューに追加することまでできてしまう。といっても私も、そんなにそれを活用してるわけでもない。 普通は、個人用マクロブックのマクロだったら、…
リボンとかツールバーとか、Excelの様々なカスタマイズについて述べます。
はじめに Excel VBAではなんと、作成したマクロを、Excelの右クリックメニューに追加することまでできてしまう。といっても私も、そんなにそれを活用してるわけでもない。 普通は、個人用マクロブックのマクロだったら、…
はじめに Excelでは、縦や横に長い資料を作ることがよくある(横に長くするのは基本的にNGだが)。 そういうとき、タイトル部分などは、縦横にスクロールしても常に見えるようにしておくのが配慮というもので、それが「ウインド…
前回の記事では、Excelで逆算を行う機能である「ゴールシーク」について紹介した。 今回は、そこで紹介したゴールシークのデメリットの解消にチャレンジしたマクロを作成してみた。 おさらいだが、ゴールシーク機能のデメリットは…
はじめに Excelで、 「1日」~「31日」の名前のシートを作らないといけない 既に何十個ものシートを設置してるけど、それらのシート名を全部変えていかないといけない といったように、多数のシート名を設定しないといけない…
以前の記事で、Excelのオートフィルタについて、難しいが役立つショートカットキーというのを紹介した。 これに書いてる内容自体に誤りはないと思うが、「まだこんなんじゃ面倒が全然解決されたうちに入らんよ。まだもっと改善でき…
はじめに ご存じない方も多いと思うが、Excelのマクロ・VBAでは、ファイルのコピー、フォルダの新規作成などといった、ファイルやフォルダの操作もできる。 今回はExcel VBAで、Excelの選択セル範囲からフォルダ…
Excelで多くのシートがあるとき、その目次となるページのシートを作るマクロを、下記に示す。 似たようなのはあちこちで公開されてるだろうけどね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
Sub makeSheetsContent() 'シート目次を作る Dim arr As Variant Dim ws As Worksheet Dim rng As Range Dim buf As String Dim i As Integer Dim wsNum As Integer Call appSet wsNum = Worksheets.Count 'シートの数。見出しも作成するために1加えておく ReDim arr(1 To wsNum, 1 To 2) 'まず見出しをセット For i = 1 To wsNum arr(i, 1) = i '番号 arr(i, 2) = Worksheets(i).Name 'シート名 Next i Worksheets.Add before:=Worksheets(1) 'シート名一覧のシート Set ws = ActiveSheet ws.Cells(1, 1).Value = "№" ws.Cells(1, 2).Value = "シート名" ws.Cells(2, 1).Resize(wsNum, 2).Value = arr For i = 1 To wsNum Set rng = ws.Cells(i + 1, 2) 'シート名を書いたセル buf = arr(i, 2) 'シート名 ws.Hyperlinks.Add Anchor:=rng, Address:="", _ SubAddress:="'" & buf & "'" & "!$A$1", TextToDisplay:=buf 'リンクも追加 Next i Rows(1).HorizontalAlignment = xlCenter '横方向は中央揃え Cells(1, 1).Resize(1, 2).EntireColumn.AutoFit '列幅の自動調整 Call appReset End Sub Sub appSet() 'マクロ処理中に、描画など余計なものを省略して高速化 With Application .ScreenUpdating = False '描画を省略 .Calculation = xlCalculationManual '手動計算 .DisplayAlerts = False '警告を省略。 ' .EnableEvents = False 'DisplayAlertsよりこちらを設定した方が良いのかな? End With End Sub Sub appReset() '描画などの設定をリセット With Application .ScreenUpdating = True '描画する .Calculation = xlCalculationAutomatic '自動計算 .DisplayAlerts = True '警告を行う End With End Sub |
途中に「…
Excelで、シートの見出し色を他のシートと同じものにするマクロを示す。内容の説明は後で書きます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Sub copySheetTabColor() Dim ws As Worksheet Dim rng As Range Set ws = ActiveSheet On Error GoTo myErr '***Application.InputBoxのType:=8は、セル範囲を選択させるものです。*** Set rng = Application.InputBox("シート見出し色をコピーしたいシートのセルをどこか選択してください", Type:=8) ws.Tab.Color = rng.Parent.Tab.Color'シート見出し色をコピー myErr: Exit Sub End Sub |
このマクロは、コピペしてからExcelの個人用マクロブ…
前回の記事で、Excelの「形式を選択して貼付け」の諸機能について述べた。 しかしこれら便利機能も、毎回「形式を選択して貼付け」ダイアログボックスを出してチェックボックスにチェックを入れたりしてると、面倒になってくる。そ…
はじめに:複数Excelブックを順序良く切り替えたい 今回の記事は主に、Excel2013以降のユーザーを対象としています。 今回は、Excel2013以降において、複数のブックを相互にスムーズに切り替えられるマクロを作…