• ベストアンサー

列の任意のセルに値入力時にマクロ起動

ExcelのVBAについて質問です。 2列目の任意のセルに値を入力した際にマクロを起動したい場合、どのようにソースを記述すればよろしいでしょうか? たとえば2列目の任意のセルに入れた値に基づいた値を3列目の同じ行に返す場合などです。 ご教示お願いします。

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

一例です シートモジュールに Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Target.Offset(0, 1).Value = Target.Value End If End Sub といった風に記入してみてください。

kurogatuo
質問者

お礼

ご回答ありがとうございます! 確かにこれでいけますね! こんなシンプルなソースも書けないとは…まだまだ修行不足です。 参考になりました!

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

シート名タブを右クリックしてコードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_Change(byval Target as excel.range)  dim h as range  on error resume next ’2列目の任意のセルに値を入力した際にマクロを起動したい  for each h in application.intersect(target, range("B:B"))  ’任意のセルに入れた値に基づいた値を3列目の同じ行に   cells(h.row, "C").value = h.value & "に基づいた値"  next end sub ファイルメニューから終了してエクセルに戻る B列に何か記入する。 状況に応じて、B列の複数のセル、あるいはB列を含む複数のセルを同時に編集してみる。

関連するQ&A

  • エクセルのマクロ作成で困っています。任意の列(〇列1行目)から0001

    エクセルのマクロ作成で困っています。任意の列(〇列1行目)から0001-安部 0002-安藤 0003-木下・・と入力された列があります(番号は3桁あるいは4桁です)。そして、例えば最後の入力されたセルの行番号が56だとして、そこに入力されたものが「0056-名前」であるか確認するマクロを作りたいのですが、どのように記述すればよいでしょか?確認したいのは番号(この場合'0056')のみで良いのですが・・。

  • 値が奇数の時、任意のセル範囲の行の色付けマクロを

    条件つき書式のマクロを教えてください。 任意の選択したセルの右端列に数字を入力しています。 その数字が奇数だったら、数字の入力してある任意の列は除いて、行の色付けをしたいのです。 選択するセル範囲と数字の入っているセルの列はシート毎、ブック毎に、変わりますので、マクロで設定をしたいと思っています。エクセル2010を使っています。 よろしくお願いします。

  • マクロでExcelのセルに任意の文字列を追加するには?

    Excel2003 を使用しています。 文字列の入ったセルに任意の文字列を追加するマクロを 作りたいのですが、どのように記述すればよいのでしょうか? 例えば、郵便番号に〒を文字列の頭に追加したい場合です。 元のセルに入力されている文字列が 111-1111 として、マクロで、 〒111-1111 と同じセルに追記したいのです。 ご助言の程、どうぞよろしくお願いします。

  • EXCEL: セルの先頭に任意の文字列を入れる

    Excel2013 Excelのセルに入力された文字列の先頭に、任意の文字列を入れたいのですが、どのような方法があるでしょうか? マクロが必要でしたら記述をお願いします。マクロが不要な方法があれば、なお便利です。 文字列は1~3文字程度で任意なものを入れたいのですが、既存セルの先頭に入れるだけです。ただ適用セルが数千あるため、手作業を避けたいと考えています。

  • エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい

    エクセル2000:決まったセルに数値が入力されたらマクロを起動させたい。 たとえばセルA1に、1以上の数値が入力されたときに、セルA2に今日の日付を入力させる マクロの記述はどうすれば宜しいでしょうか? 以下の記述で、セルA2に日付は入力させられるのですが、 セルA1に1以上の数値が入力された場合に起動させる方法が分かりません。 Range("A2").Select SendKeys "^(;){ENTER}" ご教授の程、宜しくお願い申し上げます。

  • セル移動マクロを教えて下さい。

    エクセルで最終行の次の行(新規入力となる行)の左4つ目のセルに移動するマクロを作りたいのですが、出来るでしょうか。 例えば列Aに1から3000までのNOが入っているとします。 B列からD列までは他のデータに使用しているため新規入力データE列の行から右に入力しています。 NO125の行までデータ入力している場合、ボタンをクリックすれば、A列のNO126(新規入力行のA列)にセルが移動するマクロです。 よろしく、お願いいたします。

  • セルの値によって、入力可能なセルを動的に変更したい

    こんにちは。 Excelで、以下のような動作をしたいと考えています。 B列に入った値が'1'のときは、同じ行のC列・E列・H列にしか入力できないようにする。 B列に入った値が'2'のときは、同じ行のD列・F列・G列・H列にしか入力できないようにする。 (遷移できない列は、選択不可能とする) ある列に入力した値によって、動的にセルのロックを変更する・・・?というイメージなのですが、 具体的な実現方法がわかりません。 実現方法を教えていただけないでしょうか。 よろしくお願いします!!

  • 値を入力後、自動的にアクティブセルが移動するマクロ

    (1)エクセルファイルを開けたときのアクティブセルを設定。 (2)そのセルに値を入力後、ENTERで違うセルに移動。  (違うセルは、隣接していない) (3)入力後、ENTERでまた違うセルに移動。 (4)数個のセルに入力後は、任意のセルに値を入力できるようにする。 マクロでできることなのかわかりませんが、 よろしくお願いします。

  • 特定の列が再計算された時に実行するマクロ

    excelで、特定の列に計算式(SUM)が入っています。 その列が再計算され、結果が1より大きくなったら、そのセルと同じ行の、他の列の値を変更するマクロを作りたいと思っております。 Worksheet_Calculateだと、再計算されたセルを特定できないと伺いました。 なので、再計算されたセルと同じ行で、他の列の値を変更することができません。 Worksheet_Changeだと計算式による変化は扱えないようなので・・・。 このような場合、どうすればいいか教えていただけないでしょうか。 よろしくお願いいたします。

  • あるセルの値を別のセルを参照する際の行番号や列番号として使用したい

    あるセルに入っている値を別のセルを参照する際の行番号や列番号として使用したいのですが、可能でしょうか? たとえば、A1に10、A2に20と入っていたら、10行目の20列目の値を取得するようなことがしたいです。 マクロを使えばできそうですが、マクロを使わずにできる方法があれば教えてください。

専門家に質問してみよう