こんにちは。
そういった場合は、Select Caseステートメントがいいかも知れませんね。
●(処理内容)
A、C、Eの列幅を 14
B,D、Fの列幅を 10
列番号を数字で扱うか、見た目の通り文字で扱うかでコードがちょと違います。
(1)列番号を数字(左から、1,2,3・・)で処理する方法
----------------------------------------------------------
Sub Test222()
Dim Clm As Integer
For Clm = 1 To 256
Select Case Clm
Case 1, 3, 5
Columns(Clm).ColumnWidth = 14
Case 2, 4, 6
Columns(Clm).ColumnWidth = 10
Case Else
End Select
Next Clm
End Sub
----------------------------------------------------------
(2)列番号を文字(A,B,C・)で処理する方法
-----------------------------------------------------------
Sub Test333()
Dim Clm As Integer
Dim Moji As String
For Clm = 1 To 256
Moji = Columns(Clm).Address(False, False)
Moji = Left(Moji, InStr(Moji, ":") - 1)
Select Case Moji
Case "A", "C", "E"
Columns(Moji).ColumnWidth = 14
Case "B", "D", "F"
Columns(Moji).ColumnWidth = 10
Case Else
End Select
Next Clm
End Sub
------------------------------------------------------------
上記からもお分かりのように
(2)の列番号を文字(A,B,C・・)で扱う方が
どの列を処理してるか一目瞭然なのでベターかな、と。
それから、For Clm = 1 to 256 と全列を回しているのは
どれの列が対象になってもここは変えなくてもいいようにです。
以上です。
補足
おはようございます。 回答ありがとうございます。 (1)の方法は、手元の参考書にも記載されていましたが、これだと不都合な点があるので、(2)の方法でいきたいと思います。 ひとつの列や連続した列の列幅を指定する書き方はわかるのですが、質問文中の例に挙げたような連続しないセルの列幅が同じ場合でも、ひとつずつ書く方法しかないのでしょうか? (コンマで区切る?などして、まとめて書けないのでしょうか?) もし、ご存知なら教えていただけると助かります。 よろしくお願いします。