• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelでマクロ設定したが反映されない(初心者です))

Excelマクロの設定が反映されない(初心者です)

このQ&Aのポイント
  • Excelでマクロを設定したが、反映されません。どうすればいいのでしょうか?
  • マクロ初心者の私がExcelでマクロを設定しましたが、正しく反映されません。教えてください。
  • Excelのマクロ設定で問題が発生しています。なぜ反映されないのか、わかる方がいれば教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 最初に、別なコメントですが、ご質問文のように、自分のすることを論理的に、そしてきれいに並べられる人は、意外に早くマクロは上達します。もう、それで半分以上は出来たに等しいです。 マクロのほとんどは、一行のマクロの積み重ねです。後は、それぞれをどういう表現をするかだけです。その表現の仕方を知らないから出来ないだけです。それさえ分かれば、たぶん、私が書かなくても、yukaaikawaさんは、出来るはずだと思います。 掲示板では、いろんなノウハウが紹介されたりしますが、目的を達成できさえすれば、それで良いと思います。分からないことは、後は、VBAの逆引き辞典やインターネットで細かいことを調べればよいのです。 今回は、入門レベルに合わせて書くことにし、#1で書いた話とは少し違いますが、元の文章をそのままマクロに書き換えてみました。あまり、私が初歩的な書き方をすると、他の回答者の方から、思わぬ突っ込みを受けかねませんもので、少しアレンジはしています。 なお、塗りつぶしの青色は、私などは、パステルカラーを使うことにしています。文字の色の場合は、濃い青を使うようにしています。 色番号は、ヘルプで調べると出てきます。 「GridlineColorIndex」 プロパティをみてください。 (グリッドライン) '行を3行挿入 '?.Rows("1:3").Insert shift:=xlShiftDown の始点となる部分が、1行目ということなら、こうなります。 '-------------------------------------------- '標準モジュール Sub TestMacro1()   Dim i As Integer   If Worksheets.Count < 4 Then     '挿入 ワークシート     Worksheets.Add   End If   For i = 1 To 4     With Worksheets(i)       .Name = Mid("abcd", i, 1)       '全体の文字サイズを10に変更       .Cells.Font.Size = 10       '行を3行挿入   '*ここが良く分かりません。1行目からという条件です       .Rows("1:3").Insert shift:=xlShiftDown       'A1セルの文字サイズを16に変更       .Range("A1").Font.Size = 16       '4行目を選択し、文字位置を中央揃え       .Rows(4).HorizontalAlignment = xlCenter       'A4・B4・C4・D4・E4・F4のセル色を青に変更       .Range("A4:F4").Interior.ColorIndex = 34 'パステルの水色       '.Range("A4:F4").Interior.Pattern = xlSolid 'たぶん要らないはず       'シートa~dのA1にa ~d と入力       .Range("A1").Value = Mid("abcd", i, 1)       'aとシートcとシートdをB列・C列を選択 桁区切りスタイルに変更       '分岐       If .Name <> "b" Then         .Columns("B:C").NumberFormatLocal = "#,##0"       Else         'シートcをC列・D列を選択 桁区切りスタイルに変更         .Columns("C:D").NumberFormatLocal = "#,##0"         ' G4セルを青に塗りつぶし         .Range("G4").Interior.ColorIndex = 34       End If     End With   Next i '最初のシートに戻る   Worksheets(1).Select End Sub

yukaaikawa
質問者

お礼

さっそくのコメントありがとうございます! 教えていただいたとおりにやってみたら(というかとりあえず、コードをコピペ)、完璧に出来ました!本当にありがとうございます! ただ、以下の要因で、今回は、シートごとにマクロの記録ボタンを押して行うことにいたしました。 ・部分的に省略したりだとか、なるべくシンプルにして質問させていただいたため、コードを読み取って、書き換えないとならない部分がある。それをするにはもう少し勉強してからでないと間違える恐れがある。 ・一連の作業は、ワークシート挿入後、別のところからデータを貼り付けて、再度処理を開始しなければならない。そのためのコードを書き換える能力がない。 今回、コードを編集したり、貼り付けたりする機能があることを初めて知りました。とても勉強になりました。それから、コメントくださった中の「'」がコメントアウトだということにも後から気付きました。そのほか、いろいろと勉強になりました。 少し勉強してから質問できるように、がんばっていきたいと思います。が、なかなかそれが長い道のりだったりするんですよね。。でもあきらめないようにします。ありがとうございました! 後で締め切ってポイント付与作業させていただきます!取り急ぎお礼まで。失礼します。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 手作業でされたことは、やはり手作業の中の約束事で出来上がっているのです。 特に作業グループは、あくまでも、マニュアル操作が主な使い方で、VBAでは、Selection というところで、シート全体を通した確保がされません。したがって、それらは個別にしなくてはなりません。 例: For Each nam In Array("a","b","c","d")  Worksheets(nam).Select  '-フォントの色  '-フォントサイズ  '-桁区切り書式  '-塗りつぶし Next nam としてみるとよいと思います。そして、個別のものは、個別に回すようにすればよいです。分からないようでしたら、また、書き添えます。

yukaaikawa
質問者

補足

ありがとうございます! そうなんですね。マクロという意味やできることなど、ぼんやりとしか分かってなく、お手数をおかけしてしまっています。 ところで、例、を挙げていただきましたが、これをどこにどのように設定したらよいのでしょうか。申し訳ありませんがご教示いただければ幸いです。

関連するQ&A