• ベストアンサー

Excelマクロの命令文を教えてください。

EXCEL2002です。現在Access2002に簡単なマクロを作りAccessよりExcelで作った000.xlsを開いてます。その000.xlsに下記のようなマクロを入れて実行し目的を果たしています。 Sub LROpen() ChDir "D:\EXCEL\LRTotal" myfile = Application.GetOpenFilename Workbooks.Open Filename:=myfile End Sub 本当はAccessからいっぺんに上記マクロのEND SUBまで行きたい所ですが私の力では無理なのでこのように段階的になってます。質問はこの上記マクロが張ってある000.xlsが開いたとき自動的にマクロが実行される様にする方法があるかお尋ねする次第です。宜しくお願いします。

noname#18634
noname#18634

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

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

「VBエディタ画面の左側上のツリーでThisWorkbookをダブルクリックし」この意味がいまいちはっきり分かりません。 VBEの画面のVBAProjectのMicrosoftExcelObjectの 「ThisWorkBook」をダブルクリックする。 現れた画面の「General」の▼をクリックして Workbookをクリック、右上の「Declaration」の▼をクリックして、「Open」をクリックすると、 Private Sub Workbook_Open() End Sub となるから、その間に回答のコードをコピペしなさいということです。 >マクロの編集でご指示のようにPrivate Sub Workbook_Openを一番上に書きました 上記のとおりコードを打ちこむのと、上記のような操作を するのは差がありそうです。また覚えれば上記の操作の法が正確簡単ですしね。

noname#18634
質問者

お礼

ツリーが表示されていなかったためとんちんかんになってしまいました。お陰様で初期の目的が達成できました。有り難うございました。

noname#18634
質問者

補足

皆さんにお世話になり有り難うございます。非常に恥ずかしいのですがやっぱり分かりませんです。 念のためツールからマクロそしてVisual Basic Editorを開くのですよね。この場面でツリーと言う言葉が何を指しているのか分かりません。ツリー状の物が現れていません。ですから 「VBEの画面のVBAProjectのMicrosoftExcelObjectの 「ThisWorkBook」をダブルクリックする。 現れた画面の「General」の▼をクリックして Workbookをクリック、右上の「Declaration」の▼をクリックして、「Open」をクリックすると、 Private Sub Workbook_Open() End Sub 」 も何がなんだか分からなくて出来ません。 やはり小生のレベルでは無理かもしれませんです。

その他の回答 (1)

noname#240783
noname#240783
回答No.1

VBエディタ画面の左側上のツリーでThisWorkbookをダブルクリックし、 Private Sub Workbook_Open ChDir "D:\EXCEL\LRTotal" myfile = Application.GetOpenFilename Workbooks.Open Filename:=myfile End Sub と記述すれば、このWorkbookが開くたびに自動的に実行される と思います。

noname#18634
質問者

お礼

有り難うございました。お陰様で出来ました。一番最初にご回答していただき感謝しています。

noname#18634
質問者

補足

早速有り難うございます。結論から言いますとうまく行きませんです。 気がついた点を書きます。 1 「VBエディタ画面の左側上のツリーでThisWorkbookをダブルクリックし」この意味がいまいちはっきり分かりません。 2 マクロの編集でご指示のようにPrivate Sub Workbook_Openを一番上に書きました。全部小文字で書きまして改行したらPrivate Sub のPとSはちゃんと大文字になりましたがWorkbook_Open のWとOは大文字になりませんでした。 3 Openのうしろに()が自動的に出来ました。 4 とにかく下記のようにして Sub LROpen() ' Macro1 Macro ' マクロ記録日 : 2004/3/8 ユーザー名 : xxxx ' Private Sub Workbook_Open() ChDir "D:\EXCEL\LRTotal" myfile = Application.GetOpenFilename Workbooks.Open Filename:=myfile End Sub まず000.xlsを開いても何事も起きないのでマクロを実行したら コンパイル エラー End Subが必要ですと出てしまいます。 そしてSub LROpen()の所が黄色になっていました。 以上お気づきの点があったら宜しくお願いします。

関連するQ&A

  • Excelでファイルを開くをマクロで行いたい

    マクロ初心者です "ファイルを開く"をマクロの記録で記録させると ChDir "C:\Documents and Settings\○○\△△\※※" Workbooks.Open Filename:= _ "C:\Documents and Settings\○○\△△\※※¥LotLog20070131.csv" Windows("●●●.xls").Activate End Sub と記録されます この中で 開きたいファイルネ-ム(上記ならばLotLog20070131.csv)を "●●●.xls"の どこかのセルを参照に開きたいのですが どうすれば宜しいのでしょうか?

  • Excelマクロで同じブックにCSVを読み込むには

    Excelの指定したシートにCSVファイルを読み込ませたいのですが 以下のVBAマクロを実行すると新しいブックが起動して 新しいブックの方にCSVファイルが読み込まれてしまうのですが これをVBAマクロを実行しているブックの指定のシート(例えばSheet3など)に 読み込ませたいのですがどのように記述すればよいのでしょうか。 よろしくお願いします(Excel2010) Sub Macro1()  ChDir "C:\test"  Workbooks.Open Filename:= "test1.csv" End Sub

  • エクセルマクロVBAコピー領域と貼り付け領域の違い

    お世話になっております。 下記のマクロについて、ご指導願います。 試作研究費マクロ.xlsというファイルのマクロについてです。 試作研究費明細作成マクロ1()を実行すると、試試作研究費マクロ.xlsというファイルに貼りつける ファイルを選択できるようになっており、それを選択すると、試作研究費マクロ.xlsに貼りつけられる 仕組みになっているのですが、エラーになります。 、「コピー領域と貼り付け領域 の違いでデータを貼り付けることが出来ません。 」というメッセージが出てきて処理できません。 デバックによると、下から二行目のActiveSheet.Pasteの部分が黄色く塗りつぶされています。 最近エクセル2007にしたのですが、エクセル2000で作成したマクロは使えないのでしょうか? エクセル2000の時は問題なくできていたのですが。 何が原因なのかわかりかねますので、ご指導の程、よろしくお願いいたします。 Sub 試作研究費明細作成マクロ1() ' ' 試作研究費明細作成マクロ1 Macro ' マクロ記録日 : 2011/11/11 ユーザー名 : ' ' Dim myFile myFile = Application.GetOpenFilename() If myFile = False Then Exit Sub Workbooks.Open Filename:=myFile Cells.Select Selection.Copy Windows("試作研究費マクロ.xls").Activate Cells.Select ActiveSheet.Paste Range("F11").Select End Sub

  • Excelのマクロの命令文を教えてください

    EXCEL2002です。 仮にAAA.XLSを開いて書込をしその内容をマクロでWTTOTAL.XLSに転記し又AAA.XLSに戻ります。ここまでの進行は何とかマクロが作れました。その後AAA.XLSより終了マクロを下記のように作りました。 Sub SHUURYOU() Windows("WTTOTAL.XLS").Close SAVECHANGES:=True ActiveWorkbook.Save Application.Quit End Sub この場合うまく働いてくれますが時にAAA.XLSだけで作業が終わることがあります。するとWTTOTAL.XLSが開いていないのでエラーになります。WTTOTAL.XLSが開いていてもCLOSEの時でもかのマクロを働かすにはどのような命令文を何処に付け加えればいいのでしょうか。 よろしくお願いします。

  • Excelのマクロでファイルを開くのダイアログをキャンセルしたときの挙

    Excelのマクロでファイルを開くのダイアログをキャンセルしたときの挙動についてです。 マクロで次のような記述をしています。 Sub tekitou() Dim vntFileName As Variant vntFileName = _ Application.GetOpenFilename( _ FileFilter:="エクセルファイル(*.xls),*.xls" & _ ",CSVファイル(*.csv),*.csv" _ , FilterIndex:=1 _ , Title:="ファイルを開く" _ , MultiSelect:=False _ ) If vntFileName <> "False" Then Workbooks.Open Filename:=vntFileName End If うんたらかんたら End Sub このとき、ファイルを開くのダイアログをキャンセルしたときでも「うんたらかんたら」の部分が実行されてしまいます。 キャンセルを押したときにそこでそれ以降をスキップして何もなかったかのような挙動をさせるためにはどのような記述をすればいいのでしょうか?

  • VBA_マクロ内でマクロ実行

    独学でVBAをやってる初心者です。 よろしくお願いします。 EXCEL2003を使ってます。 例) <A.xlsファイル> Sub File_A () Workbooks.Open Filename:="B" Call File_B Range("A1").Select Selection.Paste End Sub <B.xlsファイル> Sub File_B () Range("A2:T5").Select Selection.Copy End Sub A.xlsファイルを開きマクロFile_Aを実行させると B.xlsファイルのマクロFile_Bを実行することができません。 どうしたらうまく実行できますか? 教えてください。

  • マクロでエクセル・ワード文書をひらく

    Windows2000 Excel2000でマクロ作成中の超初心者です。 コマンドボタンでExcelとWord文書を開いて、その文書を利用しています。次の3点について、ご教示をお願いします。 1)この文書を開いたとき、両方ともマイドキュメントのフォルダに固定したい 2)ワード文書を開くと、タスクトレーにあらわれるため、いちいち最大化ボタンをおさなければならない。これを最初から最大化表示したい 3)他のPCでも使えるコードにしたい ちなみに使っているコードは次の2個です。 Sub ワードをひらく() Dim FileName As String Dim s As String On Error GoTo JumpError FileName = Application.GetOpenFilename("Word文書,*.doc", 1, "Word文書を開く", , False) Shell """C:\Program Files\Microsoft Office\Office\WINWORD.EXE""" & " """ & FileName & """" JumpError: End Sub ----------------------------------- Sub エクセルをひらく() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls") If OpenFileName <> "False" Then Workbooks.Open OpenFileName End If End Sub

  • エクセル ファイル名を指定して保存閉じる。

    Sub ブックを開く() Workbooks.Open Filename:="D:\顧客データ\" _ & Range("B1").Value & ".xls" End Sub 上記のマクロでファイルを開き作業をしています。 作業後にファイルを上書保存して閉じるには どのようなマクロになるのでしょうか。 よろしくお願いします。

  • 他のパソコンで自作のマクロを使いたい

    Excel2000でマクロをつくりました。これを他の人のパソコンで使うと 絶対参照のためエラーが発生します。相対参照にしたいのですが方法が分かりません。よろしくお願いします。 Sub 給与マクロ起動() '起動確認済 ChDir "C:\Documents and Settings\aitaine\デスクトップ\総務\kyuyo" Workbooks.Open(Filename:= _ "C:\Documents and Settings\aitaine\デスクトップ\総務\kyuyo\kyuyomacro.xls"). _ RunAutoMacros Which:=xlAutoOpen ActiveWindow.WindowState = xlMaximized End Sub

  • EXCELにテキストファイルを読込むマクロ作成

    EXCELにテキストファイルを「カンマ区切り」で読み込みしたいのですが、 下記マクロの内容ではカンマ区切りで正しくインポートされないのですが 作成方法ご伝授お願いいたします。 sub macro1()  dim myFile as string  myfile = application.getopenfilename(filefilter:="テキストファイル(*.txt),*.txt")  if myfile = "False" then exit sub  workbooks.opentext _   filename:=myfile, _   datatype:=xldelimited, _   textqualifier:=xltextqualifierdoublequote, _   tab:=true, _   comma:=true, _   space:=true ’予備  activeworkbook.worksheets(1).move before:=thisworkbook.worksheets(1) end sub

専門家に質問してみよう