• ベストアンサー

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

DOUGLAS_の回答

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

>したがって「Aを片づけ後Bにチャレンジ」というのが、 >Aはまだ片づいていないものがあるとすれば >順序からいけばCの方法が一番いいかと思います。  了解しました。  今までのやりとりを踏まえた上で、白紙に戻して一からご説明いたします。 --------------------------------  さて、今更ながら、「前回の分のQ&AはNo7の記述」を、初めて具に拝見してみました。  No5 の「お礼」に >1行ずつの記述の意味を直接教えてくれるような >身近な人がいれば理解度は早いのですが、 >悲しいかな、独力ではなかなか理解しきれずご迷惑をかけます。 と書かれていますので、先ず、手始めに、この「前回の分のQ&AはNo7の記述」を解説してみようかと思ったのですが、 >このFEDCABがデータ列のことかなと勝手に考えつつも、 >実際の列(M~R)に置き換えてやってみたりしていたり >Set rngStart = Range("F1")もF1スタート列だとすれば >最初のスタートはR3なので置き換えてみたりしてみました。 とのことですので、先ず、noro6857 さんのお手許にある コード を、そのまま、こちらに コピペ してみてください。  恐らく、キチンと理解されずに、コード を運用していらっしゃることと存じますので、「1行ずつの記述の意味を」解説させていただきます。

noro6857
質問者

お礼

ありがとうございます。 使用中のマクロは次の通りです。 お説の通り、内容は理解できていませんので教えてもらったものを単に張り付けただけで 使用しています。 ------------ Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2010/2/9 ユーザー名 : QDELLSP2 ' Dim buf As String, buf2 As String, CB As New DataObject Dim rng As Range 'データセル範囲 Dim c As Range 'データセル Dim n As Integer 'データセル範囲の列数 Dim i As Integer 'ループカウンター Dim x As Integer 'オフセット量 '//旧抽出データ消去 Range("AA1:AA500").ClearContents '//選択セルが対象列範囲外なら中止 If Intersect(ActiveCell, Columns("A:R")) Is Nothing Then Exit Sub '//データ表示数式セル範囲の取得(エラー表示セルは除外) Set rng = Range("M" & ActiveCell.Row, "R" & ActiveCell.End(xlDown).Row) Set rng = rng.SpecialCells(xlCellTypeFormulas, 7) 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) buf = buf & vbCrLf & c.Value Next Next i buf = Replace(buf, vbCrLf, "", 1, 1) '//クリップボードに格納 With CB .SetText buf .PutInClipboard .GetFromClipboard End With ------------------------------ なお、元データには コードの続きに '//データ貼り付け(確認用) ActiveSheet.Paste Destination:=Range("AA1") Set rng = Nothing があったのですが、これを入れるとうまく貼り付けができなかったので削除して運用しています。 -------------------- データはM列~R列まで(6列)関数を入れた算式が入っています。(たてに500行くらい) 1グループは15~30行くらいで、エンドダウンキーで止まるようにグループの各最終行 は各列とも算式を削除した空欄行にしてあります。 またグループ内途中にも空欄行が発生する場合があり、これはIf関数で=""表示をして空白になっています が算式は残っているためデータ内に含まれます。(あとで空白を削除するのはこのためです) スタートはR列から始まり、RQPOMNの順に収集し、それを縦一列にしたものがテキスト貼り付けになります。1グループのテキストへの貼り付けが終わると次のR列のスタート位置にカーソルを置きマクロを実行します。 各列の1行目はあとで縦一列になったときに区分しやすいように、■記号とタイトルに相当する文字を表示しています。(あとでこれを部分修正してファイル名、その他のちの作業上で使います) こんな具合でよろしいでしょうか。不足があれば追記いたします。

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