• ベストアンサー

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

DOUGLAS_の回答

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

>各データをグループごとにつくり、その都度テキストデータに張り付けています。  状況は変わったかも知れませんが、面白そうなお題でしたので、[ANo.2] を少し変えて、それぞれの グループ の データ を 別ファイル に書き込むようにしてみました。  ちなみに、EmEditor が、拡張子「txt」に関連付けされていると存じますので、 wshShell.Run """C:\Program Files\EmEditor\EmEditor.exe""" & strFILENAME, 1, False のところは、 ActiveWorkbook.FollowHyperlink strFILENAME だけでイケると存じます。 Sub Create_TextFile_for_each_Group()  Dim FSO As Object  Dim wshShell As Object  Dim rngStart As Range  Dim strFILENAME As String  Dim TS As Object  Dim i As Integer  Dim j As Long  Dim k As Integer  Set FSO = CreateObject("Scripting.FileSystemObject")  Set wshShell = CreateObject("Wscript.Shell")  Set rngStart = Range("F1")  Do   k = k + 1   'グループ ごとに テキストファイル を作成。   strFILENAME = "D:\hoge\Group_" & k & ".txt"   Set TS = FSO.CreateTextFile(Filename:=strFILENAME, Overwrite:=True)   For i = 1 To 6    For j = rngStart.Row To rngStart.End(xlDown).Row     TS.WriteLine Cells(j, Mid("FEDCAB", i, 1)).Value    Next j   Next i   TS.Close   '作成した テキストファイル を開く。   ActiveWorkbook.FollowHyperlink strFILENAME '  wshShell.Run """C:\Program Files\EmEditor\EmEditor.exe""" & strFILENAME, 1, False   '次の グループ の先頭位置を確認   If k = 1 Then    Set rngStart = Range("F26")   Else    Set rngStart = rngStart.End(xlDown).End(xlDown)   End If  Loop Until rngStart.Row = Rows.Count  Set rngStart = Nothing  Set TS = Nothing  Set FSO = Nothing  Set wshShell = Nothing End Sub

noro6857
質問者

お礼

この部分はNo6に再掲載されていますのでそちらへの質問と共通ですが、 順を追ってここから質問させてください。 >ActiveWorkbook.FollowHyperlink strFILENAME だけでイケると存じます。 ここはエラーとして私が体験した追記するタイプの分でなく No4の方法をとるとした場合の意味ですね。 D:\hoge\Group_" & k & ".txt これは保存フォルダ名、テキスト名に一連の番号をつけてゆく操作と考えていいですか For i = 1 To 6 6列のデータを張り付けることですか Set rngStart = Range("F1") スタートの位置をF1にするということでしょうか。もしF1でなくF2だとしたら書き換える必要がありますか '次の グループ の先頭位置を確認 Set rngStart = Range("F26") ここもそうですが、次のスタートをF26に…?。次のスタートは必ずしも26行目にならないので その場合その都度記述するのでしょうか。 (1グループごとの貼り付け行数は、15~50行とまちまちになります。グループごとに空白行が1行存在しています。) なお、保存する際に各テキストの1行めは、先にも書いたようにその都度変わります これは保存ファイル名にも使うほか、後で別の作業上必要とします。 その1行めは「100825○○○○」といったようにするのですが、(100825は日付ですがあらかじめデータの中に関数で組み込まれて表示できるようにしてあります。) ○○○○はもともと別の文字が入っていて、それを●●●になおしたり、○○○○の一部をそのまま残したり ○○○○を半角にして残したりとまちまちです。 したがってマクロを一時停止させて、その都度記述する必要があろうかと思います。 (他のマクロ(Lotus123)での経験上、この記述停止もマクロ内で組めるかとは思いますが)

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