• ベストアンサー

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

DOUGLAS_の回答

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

>ここで教えていただき一連の作業の最後にデータをクリップボードに >納めるところまでのマクロを作っていただきました。  これは、 ●エクセルのマクロで範囲名設定の記述を教えてください。 http://okwave.jp/qa/q5649752.html のことですかねぇ。  #1 に、 >EmEditor 自体の マクロ でかなりのことができそうなのですが と書いた後からいろいろと調べてみると、「EmEditor Free」には マクロ機能 がついていない。。。  と思いながら、上記ご質問の「補足」や「お礼」を読んでみますと、 [ANo.2] の [補足] >別のテキストエディタでは起動すると自動でクリップボードの内容が張り付けられるようになっています。 [ANo.6] の [お礼] >保存用にテキストファィル(EM-editor使用)を使っています。 >EM-editorにもマクロ機能があって書き込みと同時に別のマクロを操作させています。 とのことですので、「EmEditor Professional」・「EmEditor Standard」のいずれかのようですね。  いずれにいたしましても、 ●コマンド ラインを指定するには http://jp.emeditor.com/help/howto/file/file_commandline.htm に >各オプションの説明 > /i 起動後クリップボードから貼り付け とありますように、EmEditor の 起動オプション として、「/i」を付けなければなりません。  従いまして、 >ここで教えていただき一連の作業の最後にデータをクリップボードに >納めるところまでのマクロを作っていただきました。 この後に、 Dim wshShell As Object Set wshShell = CreateObject("Wscript.Shell") wshShell.Run """C:\Program Files\EmEditor\EmEditor.exe"" /i", 1, False と記述してください。 --------------------------------------------------  ちなみに、 ●エクセルのマクロで範囲名設定の記述を教えてください。 の [ANo.4] に、 >コピーモードが解除されると、クリップボードが空になります。 と書いてありますが、 '1)クリップボード に積みたい範囲を コピー。 Range("A1:A20").Copy '2)EmEditor を起動。 wshShell.Run """C:\Program Files\EmEditor\EmEditor.exe"" /i", 1, False '3)(2)と(4)との タイムラグ を調整。 Application.Wait (Now + TimeValue("0:00:3")) '4)「CutCopyMode」を「False」にする。 Application.CutCopyMode = False という順序で、VBA を記述すれば、わざわざ クリップボード を操作しなくても、単純な Excel の機能だけで実現できます。  ただし、(3)の小技は要りそうですが。。。

noro6857
質問者

お礼

まず順番にと思いNo1の Dim wshShell As Object Set wshShell = CreateObject("Wscript.Shell") wshShell.Run """D:\Program Files\EmEditor\EmEditor.exe"" /i", 1, False を追記しました。テキストのEmEditorが呼び出され見事クリップボードに張り付けられました。 No4により「3行目」を次に変更したところ ActiveWorkbook.FollowHyperlink strFILENAME 「ブロジャーの呼び出しまたは引数が不正です。」というメッセージが出てしまいこちらは できませんでした。 ご指摘のとおり、前回の分のQ&AはNo7の記述によって現在運用しています。 したがってこれに追記する形ですので、これでいいかと思います。 張り付けたあと、EmEditorのマクロを使用して、貼り付け内容を操作 1.空白行の削除 2.テキスト1行目(タイトルにあたる)の10文字めからうしろ(文字数不定)を削除し、そこに4文字程度追記 (追記文字はファィルごとに変わります) 3.修正した1行目をクリップボードに貼り付け 4.ファイル保存を呼び出し、 5.ファイル名に3でクリップした文字を貼り付け 6.そのファイル名でファイル保存 ということをやっています。 ただ、EmEditorのマクロでは4で止まってしまうため、(5がマクロではできないそうなので) 5以降は手動で貼り付け(ファイル名)、エンター(保存)とやっています。 当然2のところも、追記部分は手動ですので、1~2、3~4は別マクロになってしまいます。 1.2はエクセルの方でできそうですね。 なお、ご回答のNo3.No4についてはまだ理解できていませんので、もう少し時間をください。 No4はいくつかのファィルを連続して作ってしまうということでしょうか…。

関連する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エディタを起動しても、個人用マクロの標準モジュールが表示されないのですが。