この記事では、VBAマクロで書式設定を列ごと(列全体・表示形式・文字列・数値・日付等)に一括設定する方法について解説していきます。
ポイントとしては、`Range`、`Format`、`InputBox`関数の使用です。
特に初心者の方にも分かりやすいように、変数名を日本語のローマ字表記にしています。実際の使用の場面では、わかりにくくなってしまうため、適切な英語表記に変えるといいです。
それでは、詳しく見ていきましょう!
VBAマクロで書式設定を列ごと(表示形式・文字列)に設定する方法【C列に一括設定】
それではまず、C列に文字列形式で書式設定を適用する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SetTextFormatCColumn()
Dim mojiretuRange As Range
Set mojiretuRange = ThisWorkbook.Sheets("Sheet1").Range("C:C")
mojiretuRange.NumberFormat = "@"
End Sub
コードのAlt+F8を押し、マクロ選択画面で`SetTextFormatCColumn`関数を実行します。
C列全体の書式設定(表示形式)を文字列形式に設定します。
`NumberFormat = “@”`はExcelで文字列形式を意味します。
VBAマクロで書式設定を列ごと(表示形式・数値)に設定する方法【1行目のセルが”okok”列に対して一括設定】
続いては、1行目のセルが”okok”という文字を含む列全体に数値形式の書式設定を適用する方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SetNumberFormatOkokColumn()
Dim i As Integer
For i = 1 To ThisWorkbook.Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
If ThisWorkbook.Sheets("Sheet1").Cells(1, i).Value = "okok" Then
ThisWorkbook.Sheets("Sheet1").Columns(i).NumberFormat = "0"
End If
Next i
End Sub
コードのAlt+F8を押し、マクロ選択画面で`SetNumberFormatOkokColumn`関数を実行します。
このコードは、1行目のセルが”okok”と一致する列を探し、該当する列全体を数値形式に設定します。
`NumberFormat = “0”`はExcelで数値形式を意味します。
VBAマクロで書式設定を列ごと(表示形式・日付yyyy/mm/dd)に一気に設定する方法【インプットボックスで開始列と終了列を指示できるように】
最後に、ユーザーが指定した開始列と終了列の範囲で、日付形式(yyyy/mm/dd)の書式設定を一括で適用する方法について解説します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub SetDateFormatRange()
Dim startColumn As Integer
Dim endColumn As Integer
startColumn = InputBox("開始列番号を入力してください", "列番号")
endColumn = InputBox("終了列番号を入力してください", "列番号")
Dim hizukeRange As Range
Set hizukeRange = ThisWorkbook.Sheets("Sheet1").Range(Cells(1, startColumn), Cells(1, endColumn))
hizukeRange.EntireColumn.NumberFormat = "yyyy/mm/dd"
End Sub
コードのAlt+F8を押し、マクロ選択画面で`SetDateFormatRange`関数を実行します。
このコードでは、ユーザーが入力した開始列と終了列の範囲で、日付形式を適用します。
`NumberFormat = “yyyy/mm/dd”`はExcelでyyyymmdd(つまり西暦A年B月C日の)日付形式を意味します。
まとめ VBAマクロで書式設定を列全体(表示形式・文字列・数値・日付等)に一気に設定する方法
ここでは、VBAマクロで書式設定を列ごと(列全体・表示形式・文字列・数値・日付等)に一括設定する方法について確認しました。
マクロをマスターしてさらに快適な毎日を送っていきましょう!(^^)/