- ベストアンサー
エクセルマクロで外部ファイルを開きたい
DOUGLAS_の回答
- DOUGLAS_
- ベストアンサー率74% (397/534)
Sub Macro1() '//Microsoft Forms 2.0 Object Libraryを参照設定 '//変数の宣言 Dim wshShell As Object 'WshShell オブジェクト Dim rng As Range 'データセル範囲 Dim n As Integer 'データセル範囲の列数 Dim i As Integer 'ループカウンター Dim x As Integer 'オフセット量 Dim c As Range 'データセル Dim buf As String '書込用バッファ Dim CB As New DataObject 'クリップボード '//「WshShell オブジェクト」と「初期スタート位置」の準備 Set wshShell = CreateObject("Wscript.Shell") Range("R1").End(xlDown).Select '//グループ ごとの繰り返し作業開始 Do '//データ表示数式セル範囲の取得(エラー表示セルはそのまま表示) Set rng = Range("M" & ActiveCell.Row, "R" & ActiveCell.End(xlDown).Row) n = rng.Columns.Count '//データ抽出(空白セルは抽出しない) For i = n To 1 Step -1 Select Case i Case 2: x = 1 Case 1: x = 2 Case Else: x = i End Select For Each c In Range(rng.Columns(x).Address) If c.Text <> "" Then _ buf = buf & vbCrLf & c.Text Next Next i buf = Replace(buf, vbCrLf, "", 1, 1) '//クリップボードに格納 With CB .SetText buf .PutInClipboard .GetFromClipboard End With '//書込用バッファ を解放 buf = "" '//EmEditor を起動 wshShell.Run """C:\Program Files\EmEditor\EmEditor.exe"" /i", 1, False MsgBox "「" & Selection.Value & "」から始まる グループ について" & vbCrLf & _ vbCrLf & "EmEditor での作業が終わったら OK してください。" '//次の「スタート位置」を選択 Selection.End(xlDown).End(xlDown).Select '//ワークシート最終行まできたら、 '//グループ ごとの繰り返し作業終了 Loop Until Selection.Row = Rows.Count Set rng = Nothing End Sub -------------------------------- なお、「スタート位置」の文字列の件、つまり後々の「ファイル名」の件ですが、R3 に入っている =IF(K3="A","MB"&F3&"="&A3,IF(K3="","",FIXED(L3,0,TRUE)&"."&Q3)) という式の "MB"&F3&"="&A3 の部分を弄れば何とかなりませんかね?
関連する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に 表示することはできますか? お心当たりのある方はご教示お願いします。
- ベストアンサー
- Microsoft ASP
- 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に 表示することはできますか? お心当たりのある方はご教示お願いします。
- ベストアンサー
- JavaScript
- エクセルで個人用マクロを移すには
エクセル2002で使用していた個人用マクロを、他のPCにインストールしたばかりのエクセル2003で使えるようにするには、どういう手順をとればいいのでしょうか。 エクセル2002がある方のPCの、 C:\Documents and Settings\User\Application Data \Microsoft\Excel\XLSTART\PERSONAL.XLS を、 エクセル2003があるPCのXLSTARTフォルダにコピーしてみたのですが、エクセルファイルを開いてVBエディタを起動しても、個人用マクロの標準モジュールが表示されないのですが。
- 締切済み
- オフィス系ソフト
お礼
なお、EMEDITORで行っているマクロは次の通りです。 (VBでなく自動記録で作成したものです) ------------------------------ EmEditoマクロ(貼り付け、空白行削除、1行目 ------------------------ ●EmEditor起動(新規作成)手動 ------------------------ ※クリップボードからの貼り付け→カーソルを先頭行に→ 置き換えメニューから「空白行」を「空欄ツメ」に置き換え→カーソルを先頭文字から10文字移動→ そこからうしろをエンドキーでハイライトさせる。 document.selection.Paste(eeCopyUnicode); document.selection.StartOfDocument(false); document.selection.Replace("^$\\n","",eeFindNext | eeFindReplaceEscSeq | eeReplaceAll | eeFindReplaceOnlyWord | eeFindReplaceRegExp); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.CharRight(false,1); document.selection.EndOfLine(true,eeLineView); ------------------------------ ●ここで消去部分がハイライトされているので追記文字を書き込む。(手動) ------------------------------ 1行目の先頭文字~最後文字までを選択クリップボードへ →保存メニューの呼び出し document.selection.StartOfLine(false,eeLineView); document.selection.EndOfLine(true,eeLineView); document.selection.Copy(eeCopyUnicode); document.ReadOnly=false; editor.ExecuteCommandByID(4100); ------------------- 以下手動 ●保存メニューのファイル名がハイライトされているので クリップボードからファイル名を貼り付け、エンター(保存) ------------------- このうち最初のマクロはデータ貼り付けと空白行の削除の部分は今回エクセルで取り込まれましたので 割愛することにしています。