電子書籍の厳選無料作品が豊富!

EXCEL2010マクロの初心者です。ご指導下さい。

同一シート内の同間隔で離れているセルの集団が複数個あり、
文字ポイントを変更するマクロを作りたいと思っています。
最初の集団はF5からF28までのの23行で
次の集団の始まりはF5に31行を加えた下方のセルから始まり
集団は40ヶあります。

最初のブロックの処理の
Range("F5:F28").select ……………①
   With selection.Font     
      .Name=MS Pゴシック"
      .Fontstyle="標準"
        ~
①のセルの位置を変数にかえて繰り返し処理をしたいのですが
  Dim s As long 'ブロックの開始セル位置
  Dim e As long 'ブロックの終了セル位置
        ~
  Range(Cells( s , "F" ) , Cells( e , "F" ) ).Select でも
  Range(Cells( "F" & s ) , Cells( "F" & e ) ).Select でも
  Range(Cells( "F" & s & ":" & "F" & e ).Select でもエラーになります。

①の部分を教えてください。宜しくお願いします。

A 回答 (2件)

こんにちは。



>  Range(Cells( s , "F" ) , Cells( e , "F" ) ).Select でも
>  Range(Cells( "F" & s ) , Cells( "F" & e ) ).Select でも
>  Range(Cells( "F" & s & ":" & "F" & e ).Select でもエラーになります。

まるで、VBAの試験問題ですね(^^;
この問題みたことがあるような気がします。

正しいのはこれ。  Range(Cells( s , "F" ) , Cells( e , "F" ) ).Select
しかし、モジュールとワークシートに食い違いあると、エラーが出ます。(上級問題では、NG)
こういうおかしな現象は、Excelの開発者の責任だと思っています。

先頭のブロックから31行目先というなら、以下のようになるはずです。

'//
Sub JumpSelectRange()
Dim rng As Range
Dim i As Long
Set rng = Range("F5:F28")
For i = 1 To 40
With rng.Offset((i - 1) * 31).Font
 .Name = "MS ゴシック"
 .FontStyle = "標準"
End With
Next i
End Sub
    • good
    • 0
この回答へのお礼

処理するブロック(セルの集団)の数が複数あるのでセルの開始と終了番地は
変数にしサブルーチンを回す格好になると思います。
なんとか苦労して一応動いてはいますが、勉強のためにその方法も組み込んで試してみます。ありがとうございました。

お礼日時:2015/02/16 17:28

Sub test()


Dim e As Range 'ブロック範囲
Set e = Range("f" & Cells(4, 5) & ":f" & Cells(4, 5) + 23)
' F列の cells(4,5) = E4のセルの数値~その数値+23 の範囲をeとして
e.Select
With Selection.Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
End With
End Sub

~~~~~~~~~~~
フォントを指定する範囲がF列のある行から24行分なら
Set e = Range("f" & Cells(4, 5) & ":f" & Cells(4, 5) + 23)

e.Select
With Selection.Font
.Name = "MS Pゴシック"
.FontStyle = "標準"
End With
    • good
    • 0
この回答へのお礼

私の書き方がまずかったのかエラーになりました。以下で解決しました。ありがとうございました。
メイン()
必要な情報をセットしてサブを必要な回数call。開始セル位置はこの時点で更新。

Subサブ()
 ecl=scl+lin            '終了位置=開始位置+処理行数
 scr(文字列)=Format(scl,”###0”) '開始位置/scl
 ecr(文字列)=Format(ecl,”###0”) '終了位置/ecl
 blk(文字列)=”F” & scr & ”:F” & ecr '処理範囲の編集
 Range(blk).Select
  With Selection.Font       '文字フォントと大きさを調整
   .Name=”MS Pゴシック”
   .FontStyle =”標準”.Size = 10
   ~
  End With
End sub

お礼日時:2015/02/16 17:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!