
Excel VBAで、複数のシートのセルの列幅を一度に変更する方法は??
Excel VBAに関する質問です。
ある統計表(のようなもの)から特定の数字を抜き出し、同じファイル内の別シートに反映させる作業を一部効率化できないかと試みています。
For~Nextの構文を使って、複数のシートを作成するところまではできたのですが、その後の列幅の調整がよくわからず困っています。
列の幅については下記のような感じかなと思っているのですが、
実行しても一つのシートにしか、結果がでず(全てのシートが
選択はされるのですが)他のシートの列幅が変わりません。。。
Sub 複数シートの選択()
WorkSheets.select
Columns("B:C").ColumnWidth = 15
Columns("E:H").ColumnWidth = 20
End Sub
この処理の前にシートの作成をするようにしているので、
全てのシートではなく、そのときに作成したシートのみにかかる
方法でも問題ないのですが、その方法だとうまくいくのでしょうか?
まだかなり勉強中の段階で、初歩的なことでしたら大変申しわけないのですが、上記で修正すべき点や参考になるサイトを教えていただければと思います。
For~Nextでやるのかも?と思うのですが、この構文が理解しきれておらず、自分でまったく思いつきません・・・
基本にも満たない内容で申し訳ありません。
情けない話なのですが、ご教授頂けると幸いです。
No.1ベストアンサー
- 回答日時:
これではどうでしょうか。
Sub 複数シートの選択()
For i = 1 To Worksheets.Count
With Worksheets(i)
.Select
Columns("B:C").ColumnWidth = 15
Columns("E:H").ColumnWidth = 20
End With
Next
End Sub
nknk80様
回答ありがとうございました。おかげさまでおっしゃるとおりにしてみたところうまく出来ました。処理の回数を現在のシートの数、としてやれば良いんですね。勉強になりました。
遅い時間にも関わらず、すばやいご回答くださったこと感謝します。
ありがとうございました!!!
No.2
- 回答日時:
実験の結果、確かに
Sheets.SelectまたはWorksheets.Selectの後に
Columns("B:C").ColumnsWidth=10としても全てのシートには適用されませんでしたが、
Columns("B:C").Select
Selection.ColumnsWidht=10
とすると全てのシートで列幅が適用されました。
前者では、複数シートが選択されていてもColumnsWidthはアクティブシートにのみ適用になりますが
後者は選択された範囲に対して処理するため全体へ適用されるのだと思います。
Masa2072様、ご回答ありがとうございました。検証までしていただいて、ご丁寧な対応ありがとうございます。
おっしゃるとおりにしてみたところ、確かに全てのシートにちゃんと列幅調整がかかりました。最初にシートを選択してやれば出来るのかなと思い、Masa2072様のいうような方法は思いつかなかったです。
出来るだけ自分でもこの件については調べたつもりだったのですが、
お手上げ状態だったので回答頂き助かりました。
ありがとうございました!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
複数シートの列、幅の一括変更方法
経営情報システム
-
特定の文字がある行以外を削除するマクロ
その他(Microsoft Office)
-
-
4
「Columns(A:C")」の列文字を数字にして表記したい"
Excel(エクセル)
-
5
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
6
VBAで重複データを合算したい
Excel(エクセル)
-
7
Excel の複数シートの列幅を同じにするには?
Excel(エクセル)
-
8
Worksheets メソッドは失敗しました。のエラー処理のやり方
Visual Basic(VBA)
-
9
vba フィルター 複数条件 3つ以上 完全一致除外
Visual Basic(VBA)
-
10
EXCEL ページを指定してPDF出力するVBAを教えてください。
PDF
-
11
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
Excelの入力規則で2列表示したい
Excel(エクセル)
-
14
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
15
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
16
VBAでシート書式の自動変換を作動させない方法
Excel(エクセル)
-
17
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
18
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
19
Excel VBA の ChangeFileAccess
Visual Basic(VBA)
-
20
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【ExcelVBA】マクロの入ったシ...
-
ハイパーリンクでジャンプした...
-
エクセルでブック内の倍率がバ...
-
エクセルのファイルサイズが急...
-
エクセルシートの見出しの文字...
-
エクセルシートのタブの階層化表示
-
エクセル、特定のシートにパス...
-
特定のシートのみ再計算させな...
-
(エクセル)Indirect関数で、ハ...
-
EXCELの図形(テキストボックス)...
-
エクセルで複数のシートに画像...
-
別シートの文字列があったら現...
-
Excel 全シート上のボタンを削...
-
各月のシートを1つのシートに...
-
Accessのテーブルを既存のExcel...
-
エクセル、別のシートの表をポ...
-
EXCELの「シートの見出し」のフ...
-
EXCELで複数のシートを一度に「...
-
【Excel】 すべてのシートのA1...
-
Excelで条件に一致したものだけ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルシートの見出しの文字...
-
エクセルでブック内の倍率がバ...
-
EXCELで複数のシートを一度に「...
-
【ExcelVBA】マクロの入ったシ...
-
特定のシートのみ再計算させな...
-
ハイパーリンクでジャンプした...
-
エクセル、特定のシートにパス...
-
エクセルのファイルサイズが急...
-
エクセルで複数のシートに画像...
-
Nintendo Switch 2 キャリング...
-
EXCELの図形(テキストボックス)...
-
Accessのテーブルを既存のExcel...
-
エクセルを開くとメニューバー...
-
エクセルのシー名を二段表示に...
-
EXCELの「シートの見出し」のフ...
-
エクセルの複数シートでのリン...
-
エクセルの2つのシートを並び...
-
Wordで差し込み印刷時に表示す...
-
エクセルで、シートの名前を変...
-
EXCELで存在しないシート...
おすすめ情報