• ベストアンサー

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

DOUGLAS_の回答

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

【1】前4回答について >回答のNo3.No4についてはまだ理解できていません >No4はいくつかのファィルを連続して作ってしまうということでしょうか とのことですが、前4回答の要旨は下記の通りです。 No1)追記するだけの コード を呈示しました。 No2)必要データ を クリップボード に積んでから EmEditor で開くのではなくて、txtファイル に書き込んでから、その txtファイル を EmEditor で開く方法もあるということ。 No3 - ア)EmEditor.exe を開く(wshShell.Run)ときに、起動オプションに「/i」を付けるということ。 No3 - イ)[DataObject オブジェクト] を使用しなくても、[Copy メソッド] を行なうだけで データ を クリップボード に積むことができるということについて。 No4)グループ ごとに、1つの txtファイル を作成し、マクロ が終了した時点で、すべての txtファイル を EmEditor で開く方法。 -------------------------------- 【2】No3 に対する「お礼」の中の問題点について  従いまして、 >No4により「3行目」を次に変更したところ >ActiveWorkbook.FollowHyperlink strFILENAME >「ブロジャーの呼び出しまたは引数が不正です。」 >というメッセージが出てしまいこちらはできませんでした。 とのことですが、No4 の 回答は、「一旦 txtファイル に書き出してからその txtファイル を開く」という方法ですので、No4 の場合には、「strFILENAME」に、その txtファイル名 が入っています。 >wshShell.Run ~~ >のところは、 >ActiveWorkbook.FollowHyperlink strFILENAME >だけでイケる と書きましたが、No1 のように、もともとある コード に「追記」するだけの場合には、 >「3行目」を次に変更 しても、「strFILENAME」には何も入っていませんので、エラー になります。 -------------------------------- 【3】「張り付けたあと」の操作について >張り付けたあと、EmEditorのマクロを使用して、貼り付け内容を操作  やはり、私の思った通り(No1 の後半部分)で、Excel VBA と EmEditor とを併用しなくても、Excel VBA だけで済む操作のようですね。  以下の点を拝見すると、やはり、No4 のやり方を少しずつ弄っていけば、Excel VBA だけで目的が完了します。 >1.空白行の削除 TS.WriteLine Cells(j, Mid("FEDCAB", i, 1)).Value の時点で、「Cells(j, Mid("FEDCAB", i, 1)).Value」が空白であるか否かを判定して、空白でない場合のみ「TS.WriteLine」する。 >2.テキスト1行目(タイトルにあたる)の10文字めからうしろ(文字数不定)を削除し、そこに4文字程度追記(追記文字はファィルごとに変わります)  ファイルごとに変わる「追記文字」を別途、VBA に書き込んでおけば、「i = 1」・「j = rngStart.Row」のときの TS.WriteLine Cells(j, Mid("FEDCAB", i, 1)).Value の時点で、「Cells(j, Mid("FEDCAB", i, 1)).Value」の >10文字めからうしろ(文字数不定)を削除し、そこに4文字程度追記 する。 >3.修正した1行目をクリップボードに貼り付け >4.ファイル保存を呼び出し、 >5.ファイル名に3でクリップした文字を貼り付け >6.そのファイル名でファイル保存 strFILENAME = "D:\hoge\Group_" & k & ".txt" の行で、「Group_" & k & ".txt"」のところに「そのファイル名」を入れる。 >当然2のところも、追記部分は手動  これも、「追記文字はファィルごとに変わ」る法則があれば簡単なことです。法則がなければ、配列に入れておくという手もあります。 というような段取りになります。 --------------------------------  長くなりましたので、回答を2つに分けます。

noro6857
質問者

お礼

他のファイル(この場合txt)の保存指示もエクセルマクロ内でできるのですか。 (エクセルではファイルを開くところまでで、あとはそちらの作業に引き継ぐのかと思ってます) >当然2のところも、追記部分は手動  これも、「追記文字はファィルごとに変わ」る法則があれば簡単なことです。法則がなければ、配列に入れておくという手もあります。 先に書いたようにマチマチです。正確にいえば10種類くらいなのでプルダウン方式で選択可能なマクロで対応することは可能です。ただ、ファィル名だけの変更でなく各テキストの1行めもなおすす必要があります。 それからNo6(No4の修正版と考えていいですよね)ですが、基本的なこととして、この記述は先に別のマクロで現在運用している(別Q&ANo7)へのテキストへの保存部分を追記するものでしょうか。それともNo7を置き換える形でしょうか。 記述内容を見ていると、データを収集している部分があるような、ないようなよくわからないからです。 1行ずつの記述の意味を直接教えてくれるような身近な人がいれば理解度は早いのですが、 悲しいかな、独力ではなかなか理解しきれずご迷惑をかけます。 なおNo1~No4のそれぞれの趣旨についてはわかりやすかったです。 ただ、No2の「EmEditor で開くのではなくて」というのは、TXTファィルに書き込んだらそのまま保存すれば、EmEditorで再度開く必要がないのではないかと疑問を持ちました。 保存できればいいので、それを再度あけるときはEmEditorwで関連付けしてあるので、保存の都度開くことはないような気がしているのですが。

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