![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
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件)
- 最新から表示
- 回答順に表示
No.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
処理するブロック(セルの集団)の数が複数あるのでセルの開始と終了番地は
変数にしサブルーチンを回す格好になると思います。
なんとか苦労して一応動いてはいますが、勉強のためにその方法も組み込んで試してみます。ありがとうございました。
No.1
- 回答日時:
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
私の書き方がまずかったのかエラーになりました。以下で解決しました。ありがとうございました。
メイン()
必要な情報をセットしてサブを必要な回数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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAのマクロについて。 9 2022/05/04 14:50
- Excel(エクセル) 日付で矢印マクロ 4 2023/07/25 16:47
- Excel(エクセル) エクセルで同じ数字同士を自動で線で結ぶVBAを教えてください 6 2022/04/26 23:13
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) Sheet2からオートフィルターで売上日を抽出した件数をカウントし、その件数をSheet1のセルB1 2 2023/01/12 12:24
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) vbaでセルに入力したときに,その横にあるセルを保護し入力不可にするマクロを作りたいです。 2 2022/04/24 20:59
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
VBAでの SendKeysの変数指定方法
-
Excel VBA:フォーム←→セルのア...
-
エクセルでセルをクリックする...
-
【マクロ】1つのセルから結合...
-
excel マクロでの特殊文字入力方法
-
【VBA】アクティブセルだけ背景...
-
エクセルマクロで「セルのサイ...
-
エクセル VBA アクティブセル...
-
エクセル、VBAで文字列から...
-
Excelマクロ セルを行頭に移動
-
ファイルサーバー上のexcelファ...
-
エクセルでアクティブセルに対...
-
エクセル:セルの色のコード番...
-
ダブルクリックでセルに色をつ...
-
VBA Rangeの足し算
-
EXCEL VBA で西暦の下一桁でセ...
-
EXCEL2010のマクロで、セル位置...
-
選択範囲だけを相対値セルに変換
-
A1から最下行までを選択するVBA
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaで指定したセルより下の行を...
-
VBAでの SendKeysの変数指定方法
-
エクセルでセルをクリックする...
-
Excelマクロ セルを行頭に移動
-
Excel VBA:フォーム←→セルのア...
-
マクロのデータ削除
-
【VBA】アクティブセルだけ背景...
-
IF関数で違う値もTRUEになる
-
ファイルサーバー上のexcelファ...
-
エクセルマクロで「セルのサイ...
-
ダブルクリックでセルに色をつ...
-
(エクセルVBA)セルを左クリッ...
-
Excel VBA で色付きのセルの値...
-
VBA Rangeの足し算
-
セルをクリックしたら色を変え...
-
【EXCEL-VBA】特定の値の入った...
-
excel マクロでの特殊文字入力方法
-
【マクロ】1つのセルから結合...
-
Excelで数値の変化をカウントし...
-
ExcelVBA コンボボックスに入力...
おすすめ情報