• ベストアンサー

マクロを任意のセルで実行させたい

 マクロを勉強中です。  EXCELでセルを結合してやり、色を付けるマクロを作成しましたが、実行してやるとそのセルでしか実行しません。  これは何故でしょうか。  また、希望する場所で実行させたい時にはどの様にしたら良いのでしょうか。

  • htgo
  • お礼率33% (407/1224)

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

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

こんばんは。 できれば、コードは見せていただきたかったですね。 ただ、それは、記録マクロの方法がいけなかったのです。 選択した後の状態からすれば、「記録マクロ」のボタンを押して、結合セルを作り、色をつければ出来上がっていたはずです。試してみてください。 > これは何故でしょうか。 それと、コンピュータの操作を覚える上で、「なぜ」とは考えないで覚えようとしてください。しょせん、他人(MS)の決め事なのです。やり方を覚えるしかありません。人間が作ったものは、どこかに人間の癖が入っています。 これから先も、マクロでも、ワークシートでも、不可解なものが一杯出てきます。私は、昔、同じように聞いたら、有名な某達人の答え、「やってみるまで分からない」という回答を貰って、唖然としたことがあります。 でも、理屈は後から付いてくるものなのですね。 ------------------------------------------- 'サンプル 'これは、結合セルを作りますが、そこが間違えたら、もう一度実行すると、それをナシにするというマクロです。初歩的なマクロです。 -------------------------------------------- Sub MergeCellChange()   With Selection     If Selection.Count = 1 Then Exit Sub 'ひとつのセルではダメ     .HorizontalAlignment = xlCenter     .VerticalAlignment = xlCenter     If .MergeCells = False Then       .MergeCells = True       .Interior.ColorIndex = 6 '黄色     Else       .MergeCells = False       .Interior.ColorIndex = xlNone '色ナシ     End If   End With End Sub

htgo
質問者

お礼

Wendy02さん、有難う御座います。 もう少し勉強します、今後とも宜しくお願いします。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>セルで実行させたい この表現はおがしい。実行するプログラムはセル単位にあるわけではない。関数式だとセルに入れるので、そんな感じですが(実態は違う)。「セルで」の「で」のイメージなんですが、 希望する=選択したセルを「対象として」、特定の処理をしたい、と表現します。 VBAでは、ブック、シート、セル、セルの集まりの行、列、セル範囲を対象(下記○○)にして指定し、  ○○.XX  ○○.XX=△△ のように○○はオブジェクトを表し、XXはメソドだとか、xxはプロパティだとかを考えます。 ーー マクロに記録では、Range(・・).Selectの・・が具体的なセル番地 になっているので、(=操作がそうしたのです。また実際の操作は具体的なセル範囲を相性に行わざるをえない。)、質問のようになります。 マクロの記録をやり始めて、次ぎの課題が、適宜対象を変化させたいというものになりますが、プログラムの経験を積まないと、すぐに会得できるものではありません。最近VBAをやり始めたのでしょうが、「VBA」ではなく、エクセルの「マクロ」と題名にある本を、1度通読してください。

回答No.1

こんにちは 自動記述で作成されたものだと推察します 記述の中にセルを指定する記述が含まれているからだと思いますので、記述の中の Range("○○").Select とうい行を削除してしまえばアクティブセルで実行すると思います。

関連するQ&A

  • マクロを実行しても、画面を動かさないようにするには

    「エクセル」で、 「複数行のセルを選択して マクロを実行すると、 その隣にある数字が 選択した部分のセルを結合して 表示される」 というマクロを作ったのですが、 マクロを実行する度に 「一番最初にマクロの実行を 行ったセル」にカーソルが移動してしまい、 困っています。 たとえば、 選択・指定をしたのが 「C840」のセルだったとしても、 実行を押すと、画面は 「C2」のところに戻ってしまうのです。 (マクロ自体は正常に実行されます) 1回1回元の画面までスクロール させなければならず、面倒です。 どうすれば良いのでしょうか?

  • エクセルでセルの値が変更されたらマクロを実行

    エクセルで、セルの値が変更されたらマクロを実行したいと考えています。 具体的には、A1のセルに何か値が入力されるか、変更されたら、 作成したマクロを実行したいと考えています。 どうしたらいいのでしょうか。 ご教授ください。 よろしくお願いします。

  • エクセル:シート1のセルA1が0でなければ任意のマクロを実行したい

    エクセルマクロ(VBA)初心者です。よろしくお願いします。 (1)エクセルのsheet1のセルA1の値が”0(ゼロ)”でなければ、そのシート上で任意のマクロを実行し、ゼロであれば実行せずにsheet2へとぶ (2)同じようにsheet2のセルA1がゼロでなければ実効し、ゼロでなければsheet3へとぶ・・・の繰り返し(sheet50まであります。) このようなマクロ(標準モジュール)の書き方を教えてください。 よろしくお願いいたします。

  • マクロを実行中にセルの操作をすることは可能?

    エクセルVBAでテトリスを作ろうと思うのですが マクロを実行中にセルの操作をすることは可能なのでしょうか? どうもマクロ実行中はフリーズするようなのですがこれは仕様でしょうか?

  • エクセルのマクロでセルに色を付けたい

    エクセルでセルに色を付けるマクロを作る場合の 色の選択なのですが、特定の色を付けるのではなく、 そのマクロを実行した時に選択されている 「塗りつぶしの色」のボタンのバケツの色にするには どうしたら良いでしょうか? よろしくお願いいたします。

  • 結合したセルの合計を反映させるマクロ

    Excel 2007 Windows10を使用しています。 セルにはあらかじめ数値が入力されていて、 結合したいセルの範囲を指定して結合した時に、 その合計を結合したセルに反映させたいと考えています。 結合したいセルの範囲を指定するところまでは手動で、 「セルを結合して合計を反映させる」 部分をマクロで実行する事はできるでしょうか? なお、結合するセルは毎回違うので、 セルの位置を指定する事はできません。 ご存知の方がいらっしゃいましたら、 よろしくお願い致します。

  • エクセルマクロ特定のセル

    マクロの勉強したばかりですみませんが、 エクセル2003で、特定のセルが選択されたときにマクロを実行したいのですが、可能でしょうか? どうやればよいか教えていただきたいです。

  • マクロが実行されるセル範囲の変更を簡素化したい

    excel 2016を使っています。 例えば、ボタンを押すと指定したセルA1~A10までに入力されている数値を昇順に並べ替えるマクロがあるとします。 この数値が入力されているセルA1~A10の範囲をドラックして、D1~D10の位置に移動すると、マクロが実行される範囲を新たにD1~D10に指定しないとならないのですが、マクロが実行される範囲をA1~A10の範囲に固定して、別の場所に移動してもマクロを修正しなくても良い方法はありますか。

  • Excel(セルの結合マクロ)

    いつもお世話になっております。 Excelのマクロで、選択範囲の中で、下のセルが空白のものは、上のセルと結合されるマクロを作りたいと考えています。 (例1:A1セルに”TEST”が入力されており、A2,A3セルが空白として、A1:A3を選択し、マクロを実行するとA1からA3がセル結合される  例2:A1に”TEST2”B2に"TEST3"が入力されており、A1:B3を選択すると、A1からA3が結合され、B2とB3も結合される) 説明が下手で申し訳ないのですが、お力を貸していただけませんでしょうか? よろしくお願いいたします。

  • マクロの自動実行などについて

    エクセル2003のVBAマクロについて質問です あるワークシートに値が入力されたら、マクロを自動実行するように出来ないでしょうか? 又、そのセルの値を別のセルにコピーしたいのですが、データを入力する度にセルの場所が ひとつ下へずれます。この最終列のセルの値を必ず拾うようにするにはどうすればよいでしょうか? ややこしくてすいません

専門家に質問してみよう