• ベストアンサー

エクセルマクロで外部ファイルを開きたい

DOUGLAS_の回答

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.31

【お別れの言葉】 1)Excel の「マクロ」と「VBA(Visual Basic for Application)」とは、似て否なるものですが、掲示板などでは、ほぼ同じ扱いになっています。 2)VBA を編集する画面を VBE(Visual Basic Editor)と呼び、Excel の ウィンドウ から、[ツール(T)] - [マクロ(M)] - [Visual Basic Editor(V)]([Alt] + [F11] )で起動します。 3)掲示板などから マクロ を コピペ する場合には、VBE で [挿入(I)] - [標準モジュール(M)] から行ないます。 4)VBE の コードウィンドウ 内に コメント を書くときには、先頭に アポストロフィ(')を付けます。  他の言語で コメントアウト するときに ダブルスラッシュ(//)を付けるので、「'//」を付ける場合も多いようです。 5)(3) の時点で現われた コードウィンドウ に「Option Explicit」という文字が入っている場合は、「変数」・「定数」を宣言しなければ エラー になります。  逆の言い方をすれば、「変数が定義されていません。」という エラー が出る場合には、初心者の内は、この「Option Explicit」を コメントアウト するか削除すれば OK です。 6)コード に書かれた言葉の意味が分からないときには、分からない言葉に カーソル を当て、[F1] キー を押下すると、その言葉のヘルプ([ヘルプ(H)] - [Microsoft Visual Basic ヘルプ(H)])が現われます。  ただし、自分で定義した変数以外でも、ヘルプ の出ない言葉がありますので、このような場合には、その言葉を キーワード に WEB検索しましょう。 7)VBE で マクロ を実行する時に、[F5] キー を押下する([実行(R)] - [Sub/ユーザーフォームの実行])と、カーソル の置かれたところに書いてある 、Sub プロシージャ が一気に実行されます。  Sub プロシージャ とは、「Sub ~~()」~「End Sub」までのひとかたまり(マクロ の 1単位)の コード で、1つの 標準モジュール 内に 複数の プロシージャ を記載できます。 8)マクロ を一気に実行せず、途中で止めたいときには、その場所で [F9] キー を押下して、ブレークポイント を設定([デバッグ(D)] - [ブレークポイントの設定/解除(T)])します。 9)マクロ を 1行ずつ実行したい場合には、[F8] キー を1回押すごとに、1行の ステートメント が実行される ステップ イン デバッグ([デバッグ(D)] - [ステップイン(I)])を行ないます。  このとき、VBE と Excel の ウィンドウ を並べて ステップ イン デバッグ すると、なお、デバッグ しやすいかと存じます。 10)ステップ イン デバッグ するときに、[表示(V)] - [ローカル ウィンドウ(S)] で ローカルウィンドウ を開いておくと、宣言された「変数」の値の移り変わりを1行ごとに確かめることができるので、どこで不具合が発生しているのか掴むことができます。  型宣言されていない変数の場合には「型」も表示してくれるので、型宣言の参考になります。 11)宣言された「変数」以外の、例えば、「ActiveCell.Row」などの値の移り変わりを見たいときには、「ActiveCell.Row」という文字が書かれた範囲を マウス でなぞって(または、[Shift] + [←・→])反転し、[右クリック] - [ウォッチ式の追加(A)...] = [ウォッチ式の追加] ダイアログ - [OK] し、ウォッチ ウィンドウを開いて([表示(V)] - [ウォッチ ウィンドウ(H)])おくと便利です。 12)コード の中に Debug.Print ActiveCell.Row と書いておくことによって、その行での「ActiveCell.Row」の値を イミディエイト ウィンドウ([Ctrl] + [G] または、[表示(V)] - [イミディエイト ウィンドウ(I)])に吐き出し、後で確認することができます。 13)マクロ の デバッグ中に、イミディエイト ウィンドウ に ? ActiveCell.Row と書いて [Enter] すると、その時点での「ActiveCell.Row」の値を表示してくれます。  また、 Range("A1").Select と書いて [Enter] すると、1行 マクロ を実行することもできます。 【では、(^.^)/~~~】

noro6857
質問者

お礼

重ねて貴重な知識を与えていただき、ありがとうございました。 手元にVBAの書籍はあるものの、なかなかとりつきにくく こうして実際の作業の中で、具体的なコメントをいただくと とてもわかりやすく思います。 今後とも今回の経験を元に研鑽したいと思っております。 本当に長い間ありがとうございました。

関連するQ&A

  • エクセルの終了マクロ

    エクセルのマクロの記述で、 処理が終われば、マクロを記述しているエクセル自体を終了(ワークブックではなくアプリケーション)させたいのですが、できるでしょうか?

  • エクセルのマクロを記述したファイルを呼び出して実行

    エクセルのマクロを記述した外部ファイルを作成しておいて メイン(普通)のマクロの実行中にそのファイルを読み込んで、 マクロを実行させることは可能でしょうか? 可能なら方法をお願いします。

  • Excelファイルがマクロを含むか調べるには?

    Excell2003で作っていた多量のExcelファイルを、Excel2010で動かす事が必要になってきました。 で、指定フォルダにある複数のExcelファイルが、マクロを含んでいるかどうかを調べたいのです。 加えて、マクロを含んだExcelファイルのファイル名をリストアップしたいのですが、 どの様にしたら良いでしょうか? 適切なマクロなりともご教授いただきたく、よろしくお願いします。

  • エクセルのマクロで外部ファイルを開く

    セルに入力した内容をファイルネームとして外部ファイルを開きたいのですが どうすればいいのかわかりません。 具体的には 1.外部ファイルはFDで供給されます。 2.FDに入れられるファイル名は毎日かわります。 3.ファイル名は固定された名称+日付のフォーマットです。(例:file0802) 4.やろうとしているのはA1に\"file\"、B1にtoday関数で日付を入力して   A1+B1をファイル名としマクロよりそのファイル名でFDのファイルを  開きたい。 5.開いたファイルの一部をコピーしてHDD上にあるエクセルのファイルに  ペースト、このファイルにマクロを組み込みたいのです。 help等をいろいろ見たのですがこの内容に関するものが見つけられません。 もしかしたら出来ないのでしょうか? よろしくお願いします。

  • Excelで外部ファイルの取り込み(データの更新)をマクロ化したい

    C:\data のdataフォルダの中に「20060709.dat」「20060710.dat」「20060711.dat」・・・というようにファイル名に日付が入ったファイルがあります。 例えば、(データ)→(外部データの取り込み)で"sheet2"に「20060709.dat」を読み込んでいるとしします。 この時に"sheet1”のセルA1に「20060710」と入力してマクロボタンをクリックすると"sheet2"に「20060710.dat」を(データ)→(データの更新)で読み込むというような作業をマクロで自動化することは可能なのでしょうか? 可能であれば教えて頂きたいのですが。どうぞよろしくお願いします。 ちなみにマクロに関しては(自動記録)で作ったマクロを少しいじる程度の知識しかありません。Excel2000を使用しています。 以上、どうぞよろしくお願い致します。

  • 秀丸のマクロでファイルを新規秀丸にコピーしたい

    王次郎っす お疲れさまです 秀丸エディタのマクロ関数を使用してファイルの内容を新規秀丸にコピーしたいです クリップボードを使わずにコピーできる方法があったら教えてください 例えば、「memo.txt」というテキストファイルを開いた状態でマクロを実行した場合に 新規秀丸を作成し(newfile)、「memo.txt」の内容を新規秀丸にコピーしたいです。 クリップボードを使用すればできますが(copy⇒paste)、それだとクリップボードの内容が 消えてしまうのでクリップボードは使いたくないです。 よろしくお願いします

  • Html(表)のExcel出力

    現在、JavaScriptで以下の処理を行い、Htmlで書かれた 表をExcelで表示しています。 1.Htmlをクリップボードにコピー 2.new ActiveXObject("Excel.Application")でExcelインスタンスを 生成 3.Workbooks.Openでワークブックをオープン 4.オープンしたワークブックにクリップボードのHtmlを貼り付けて表示 以上の処理を、クリップボードを経由せず、Htmlで書かれた表をExcelに 表示することはできますか? お心当たりのある方はご教示お願いします。

  • EXCELで外部ファイルを参照したい

    EXCELで外部のテキストファイルを相対アドレスで参照したいのですが、マクロでないとできないのでしょうか。 たとえば、 他のファイルを参照するのは、「データ」→「外部データの取り込み」でできるのですが、特定のアドレスかファイル(絶対アドレス)しかできません。 (例えば同じフォルダ内にあるa.txtを参照したいときは、./a.txtみたいに。) どなたかわかる方、教えてください。

  • Html(表)のExcel出力

    現在、JavaScriptで以下の処理を行い、Htmlで書かれた 表(<table>タグで囲まれている)をExcelで表示しています。 1.Htmlをクリップボードにコピー 2.new ActiveXObject("Excel.Application")でExcelインスタンスを 生成 3.Workbooks.Openでワークブックをオープン 4.オープンしたワークブックにクリップボードのHtmlを貼り付けて表示 以上の処理を、クリップボードを経由せず、Htmlで書かれた表をExcelに 表示することはできますか? お心当たりのある方はご教示お願いします。

  • エクセルで個人用マクロを移すには

    エクセル2002で使用していた個人用マクロを、他のPCにインストールしたばかりのエクセル2003で使えるようにするには、どういう手順をとればいいのでしょうか。 エクセル2002がある方のPCの、 C:\Documents and Settings\User\Application Data \Microsoft\Excel\XLSTART\PERSONAL.XLS を、 エクセル2003があるPCのXLSTARTフォルダにコピーしてみたのですが、エクセルファイルを開いてVBエディタを起動しても、個人用マクロの標準モジュールが表示されないのですが。