何かと問題視されているExcel方眼紙ですが、
使いどころによっては重宝するかもしれません。
設計書とかではなく、別のゲーム的なものの作成(数独、迷路等)とかでは使えるのではないかと思います。
現場によってはExcel方眼紙をデフォルトのフォーマットとしているところがあるかもしれません。
今回、そんなExcel方眼紙を作成するマクロを作成しましたので、紹介します。
環境
OS:Windows11 Pro(64Bit)、Windows10 Pro(64Bit)
Excel:Microsoft365のExcel(バージョン2209、64Bit)
基本的には古すぎるExcelでない限りは別のバージョンであっても正常に動作するかと思います。
マクロ
'Excel方眼紙作成マクロ
Sub MakeExcelGraphPaper()
Dim line_thickness As Variant
inputvalue:
line_thickness = InputBox("Excel方眼紙を作成します。" & vbCrLf & "幅を入力してください。" & vbCrLf & "幅の範囲:0 < 幅 ≦ 67.68", "幅入力", 3)
'エラー処理
If line_thickness = "" Then
Exit Sub
End If
Dim button_value As Long
If IsNumeric(line_thickness) = False Then
button_value = MsgBox("数字以外が入力されています!!", vbRetryCancel + vbCritical, "入力エラー")
If button_value = vbCancel Then
Exit Sub
Else
GoTo inputvalue:
End If
Else
If line_thickness < 0 Or line_thickness > 67.68 Then
button_value = MsgBox("範囲外の数字が入力されています!!", vbRetryCancel + vbCritical, "入力エラー")
If button_value = vbCancel Then
Exit Sub
Else
GoTo inputvalue:
End If
End If
End If
'初期状態に戻す
If line_thickness = 0 Then
Columns("A:XFD").ColumnWidth = 8.38
Rows("1:1048576").RowHeight = 18.75
Exit Sub
Else
'方眼紙作成
Columns("A:XFD").ColumnWidth = line_thickness
Rows("1:1048576").RowHeight = Columns("I").Width
End If
End Sub
このマクロは実行すると方眼紙の幅の入力画面が表示されるので、数字を入力します。
デフォルトでは3が入力された状態となっています。
数字は小数もOKです。
なお、調べたところ、幅の最大値は67.68付近でしたので、入力値は0≦幅≦67.68で制限をかけています。
元に戻せなくなってしまうと面倒ですので、
0を入力したときのみ、方眼紙ではなく、初期状態(Excelを起動した状態)に戻します。
数字以外の文字が入力された場合はエラーメッセージが表示されます。
再試行を押した場合は再度幅入力画面になります。
また、範囲外の数字を入力した際にも同様のエラーメッセージを表示します。
挙動は数字以外の文字の時と同じです。
方眼紙の作成のコードですが、
一旦列の幅のみ設定をして置き、
列の幅を参照し、同じ幅を行に設定することで方眼紙を実現しています。
今回、このマクロですが、個人用マクロブックに適用することにより、
マクロが無効になっていても実行できるようにしています。
個人用マクロブックについてはこちらの記事に詳しく書かれていますので、参照ください。
マクロに対してショートカットキーを割り当てることができるため、
ショートカットキーでマクロを呼び出せるようにしています。
ショートカットキー割り当てについてはこちらの記事を参考にさせていただきました。
ショートカットキー割り当ての部分のマクロになります。
私はほかにもショートカットキーを割り当てているものがある兼ね合いで、
Crtl + Alt + Shift + Xをショートカットキーに割り当てていますが、
自分の使いやすいショートカットキーに変更してください。
Sub ShortcutKey()
'「Crtl + Alt + Shift + X」を「MakeExcelGraphPaper」に割り当てる
'「Crtl + Alt + Shift + X」は"^%+X"と書く
Application.OnKey "^%+X", "MakeExcelGraphPaper"
End Sub
なお、ショートカットキーをマクロに書く際の文字列の書き方ですが、
特殊文字については下記記事に詳しく書かれています。
なお、上記記事に書かれていない文字についてはそのまま記載すればOKです。
※英字の場合、大文字・小文字の区別はありません。
例:Ctrl+H → "^H"
元々割り当てられているショートカットキーが存在する場合は上書きされてしまうため、
上書きされたくない場合はショートカットキーの設定には注意してください。
参考にした記事にもあります通り、ショートカットキーは一度Excelを閉じると忘れてしまうため、
Excel起動の度にマクロを呼び出してあげる必要があります。
下記マクロをThisWorkbookに貼り付けることで起動時にショートカットキーの割り当てが行われます。
Private Sub Workbook_Open()
ShortcutKey
End Sub
まとめ
いかがだったでしょうか。
今回はExcel方眼紙を作成するマクロの実装を行いましたが、
個人用マクロブックのマクロにショートカットキーを割り当てることで
ほかにもさまざまな機能を実装することができます。
マクロにつき、自分でカスタマイズし放題ですので、
自分でマクロが書ける方は色々と実装してみてはいかがでしょうか。