• ベストアンサー

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

DOUGLAS_の回答

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

 今、落ち着いて、過去の「お礼」なり「補足」なりを読み返してみました。  No23 の「Sub Using_Web_query()」を実行し、No12 の「お礼」に書かれている サイト の 1ページ を ワークシート に展開してみました。  確かに、No12 の「お礼」に書かれている >(13)(空欄) >(14)(空欄) のような行が存在し、 >(8)1:00 のような列の場合には、 >(M~R)がエラー表示され ますね。 --------------------------------  話を掘り返すようですが、 >※(15)からはグループ2になります。 というのは、A列に >(15)02:00/OLDMIX というような表示がある場合のみ スタート 行になり、その他の場合には、スタート 行にはならない、と考えてよろしいでしょうか?【質問13】  ただし >(8)1:00 のような、半角の「1:00」だけの場合は除く、でよろしいでしょうか?【質問14】 --------------------------------  1つ分からないことがあるのですが、どうして >※(7)は不要行 >この場合12も不要 なのでしょうか? >(7)・ A4○○○ / B4△△ < AA12348 > も >(12)・ A8○○○ / B8△△ < AA12385 > も、他の行と同じような内容ですが、これは noro6857 さんの「趣味」の問題で、たまたま削除しただけのお話しでしょうか?【質問15】  それとも、 >(8)1:00 で ブロック が2つに区切られているとして、ブロック 前半の最終行と、ブロック 後半の最終行は、常に対象外にする、つまり、削除する、という意味でしょうか?【質問15】 --------------------------------  【質問13・14】の答えが私の考えている通りだとすると、グループ の区切りは、A列の値から求めることができそうです。  「ただし、例外があります」というようなお話しでしたら、振り出しに戻ります。  【質問15】の答えが、noro6857 さんの「趣味」の問題ではなくて、後者の意味だとしたら、計算式を改善して、余分な削除の手作業を減らすことができるかも知れません。 --------------------------------  なお、No23 の「Sub Using_Web_query()」を実行した後のように、WEBページ から データ を貼り付けたばかりの段階で、 Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents という コード を実行すると、「A列が空白」の行全体の計算式をいっぺんに削除する(空白にする)ことができます。  「M列~R列」の計算式だけを削除することもできます。  また、 Columns("A:A").SpecialCells(xlCellTypeConstants, 1).Offset(, 11).ClearContents という コード を実行すると、「A列が数値だけ」(例えば「1:00」)の行の L列の 計算式をいっぺんに削除する(空白にする)ことができます。 --------------------------------  このように、変わらない規則がある場合には、煩雑な作業を、たった 1行 の マクロ でやっつけてしまうこともできるのですが、【質問15】のように noro6857 さんの「趣味」の範囲で、「削除したりしなかったり」というような作業形態の場合には、マクロ による統一作業は相応しくありません。

noro6857
質問者

お礼

【質問13】 セルの関数式にもあるように全角2:00の様な場合「:」があると、タイトル扱い(グループの先頭行)になります。例外はありません。 【質問14】 2:00のような半角はグループ内の途中区切りなのでエラーとなるためこれは空欄とし、前後は同一グループになります。 グループごとの区切りは空欄が何行(不定)か存在します。 【質問15】 これはソースを説明することになりますが、各データは1時間内に納まる曲が放送され、 時間内の最終曲は1曲納まらない場合、フェイドアウト、または演奏のみとなっています。 この演奏のみの場合は、アーチストの欄で判別できます。 これは時間調整的な内容ですので不要というわけです。 したがって最終曲が演奏者だったら削除、アーチストだったら取り込みます。 そのため、これを分けるには個人の判断が必要になってしまうのです。 なお書きの部分はAデータからの判定で関数式でも可能かもしれません。(さすがに関数では式削除は不可ですが) 当然、マクロもありかもしれませんね。 今のところまだその余裕がないのですが検討の余地ありです。

noro6857
質問者

補足

今 Sub Using_Web_query() のマクロと Columns("A:A").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents と Columns("A:A").SpecialCells(xlCellTypeConstants, 1).Offset(, 11).ClearContents を入れてやってみました。おお!すごいですね。 見事、空白行、式削除行ができあがっている! いやぁ、エクセルってとんでもないことができるんですねぇ! タイトルの■の前に数値の1が入ってしまうのでこれは関数で対処可能です あとの手動削除だけはムリとしても、これは使う気になります。 思いがけない知識を得ました。 この場合、htmlのアドレス(たぶん日付が入る部分が変化)はその都度変わる訳ですが 日にち指定もできるとあったので、たぶんアドレス記入コードに指示を与えるようになるのでしょうが これができたらサイトを開く必要もなさそうですね。 ※補足欄は本来回答者が使用する欄らしいですが、回答の場所がなくていつも使ってしまいごめんなさい。

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