エクセル97でブックを開いたときに、自動的にマクロを実行させたいのですが、どのようにマクロを記述すればいいのか教えて頂けませんか。

sub autorun()
sheets(2).select
sheets(1).cells(2,2)=cells(5,5)
end sub

のように、シート2のある数値をシート1のセルに自動的に貼付したいのですが。
このマクロは自動的には実行されませんので、どうすれば自動的に実行するようにできるのかが知りたいのですが。
よろしくお願いします。

A 回答 (1件)

sub autorun()



のところを、

Sub Workbook_Open()

と変えればいいです。
    • good
    • 0
この回答へのお礼

早速ありがとうございました。
助かりました。

お礼日時:2001/01/13 15:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qエクセルで、VBマクロを使い、cellの内容が変更されたタイミングでマクロを実行したいです

エクセル上のVBマクロで、cellの内容が変更されたときに、マクロを実行し、同時にどのセルが変更されたかを取得したいです。

よい方法があれば教えて頂きたいです。
よろしくお願いします。

Aベストアンサー

Worksheet_ChangeイベントとTarget引数を使うと良いでしょう。

例えば、使用しているシートのシート名タブを右クリックして「コードの表示」で
開いたコードウィンドウに下記コードをコピーして貼り付けます。

これで、内容を変更したときに、そのアドレスを表示します。

例えば、A1:A10を選択し、"abc" をキー入力し、Shift+Ctrl+Enter を押すと
範囲内に"abc"が入力され、メッセージボックスに "A1:A10" が表示されます。

Private Sub Worksheet_Change(ByVal Target As Range)
  MsgBox Target.Address(False, False)
End Sub

但し、実際に本当に内容を変更したかどうかを検出するには、常に現シートの
写しを作っておいて、双方の内容比較する必要があります。

例えば、何も入力されていない A1:A10 を選択し、DELキーを押すと、何も変更
していないのに、A1:A10 と表示されてしまいます。

ということで、同じ内容を上書きしても変更したのと同様に扱われます。

Worksheet_ChangeイベントとTarget引数を使うと良いでしょう。

例えば、使用しているシートのシート名タブを右クリックして「コードの表示」で
開いたコードウィンドウに下記コードをコピーして貼り付けます。

これで、内容を変更したときに、そのアドレスを表示します。

例えば、A1:A10を選択し、"abc" をキー入力し、Shift+Ctrl+Enter を押すと
範囲内に"abc"が入力され、メッセージボックスに "A1:A10" が表示されます。

Private Sub Worksheet_Change(ByVal Target As Range)
  MsgBox Targe...続きを読む

Q【Sheet1】の記載事項を【Sheet2】へ特定のセル(6B)だけ自動的に移動したいです。

     A       B      C    D 
-------------------------------------------------------
1  高木よし子  6B  ○○急便健保 20年5月
2  夏木文紀  6A  ○×食品国保 20年4月
3  葉木伸宏  7B  小田国保 20年5月
4  機器麒麟    6B    ○◎国保   20年4月  
--------------------【Sheet1】----------------------------


上記のような 【Sheet1】があるとします。




下記の【Sheet2】へ【Sheet1】の 6Bの人だけ自動的に拾い出したいです。

     A       B      C    D 
-------------------------------------------------------
1  高木よし子  6B  ○○急便健    20年5月
2  機器麒麟   6B     ○◎国保     20年4月 
--------------------【Sheet2】-------------------------

出来るでしょうか?宜しくお願いいたします。

     A       B      C    D 
-------------------------------------------------------
1  高木よし子  6B  ○○急便健保 20年5月
2  夏木文紀  6A  ○×食品国保 20年4月
3  葉木伸宏  7B  小田国保 20年5月
4  機器麒麟    6B    ○◎国保   20年4月  
--------------------【Sheet1】----------------------------


上記のような 【Sheet1】があるとします。




下記の【Sheet2】へ【Sheet1】の 6Bの人だけ自動的に拾...続きを読む

Aベストアンサー

VBAを使わなければ、作業領域がいるか。
ANo.1さんの方法、少し修正。ちょっと長いが。

Sheet1列Eは作業列。
=IF(B1="6B",ROW(),"")
をいれる。
Sheet2のA1に下記を入れて列方向と、下記は4行までだが、行方向に必要なだけドラッグコピー(フィル)する。

=IF(ISERROR(SMALL(Sheet1!$E$1:$E$4,ROW())),"",INDEX(Sheet1!$A$1:$D$4,SMALL(Sheet1!$E$1:$E$4,ROW()),COLUMN()))

QExcelで、sheet全てを含む形で、文字列の検索を行い、該当する文字列のあるsheetへ自動的に飛ぶにはどうしたらよいでしょうか?

環境:Excel2003
状態:Excelのsheet毎に「ア行」「カ行」・・・と作り、10sheet作成。
   それぞれ「ア行」のsheetなら、「あ行」の氏名を、
   「カ行」のsheetなら、「か行」の氏名を記載しています。
【検索したいこと】
例えば、「明本」と検索sheet上などで検索をした場合、自動的に「ア行」sheetの「明本」のセルに飛ぶようにしたい。

※通常の「検索」「オプション」の方法以外に何かありましたら、お教えいただければと思います。

※マクロについては初心者なので、もしマクロでの方法がありましたら詳しく教えていただきたく思います。

すみませんが、宜しくお願い致します。

Aベストアンサー

「検索」「オプション」で検索場所をシートからブックに変更すれば、全体のシートから目的の単語で検索できます

マクロでも出来ると思いますが、難しそうなのでこの方法が一番簡単ではないでしょうか?

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QExcel VBA で、ファイルを開いた時、自動的にマクロが実行させる方法

Excel VBA で、ファイルを開いた時、自動的にマクロが実行させる方法を教えてください。
参考になる、URLでもかまいません。

Aベストアンサー

ThisWorkbook に Workbook_Open というイベントを記述
もしくは、どこかのモジュールに Auto_Open というプロシージャを作成。

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_130_04.html,http://park11.wakwak.com/~miko/Excel_Note/01-01_kidou.htm


人気Q&Aランキング

おすすめ情報