• ベストアンサー

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

DOUGLAS_の回答

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

>書き換え部分というのは、 >最終グループ最終行以降は対象としないと考えていいのですね。  たぶん、OKだと存じます。  コード を「書き換え」たことにより、ブロック 内が「エラー値」・「空白セル」だけで満たされている場合に限り、EmEditor の起動を スルー します。  実際に運用してご確認いただき、他の問題が生じるようでしたらお知らせください。 -------------------------------- >L列に「A」が存在しない場合、 >すなわち対象外はL列すべて空欄  これはどういう意味でしょうか?  『L列に「A」が存在しない』ではなくて『K列に...』でしたら、「M列~R列」×「先頭行~末尾行」という ブロック 内がすべて「空白セル」になるはずですから、この場合はOKです。  L列の数式をすべて削除しても、先頭行のK列が生きていたら、そこに「A」が表示され、先頭行には ---------------- M列:■510080100 N列:■6 O列:■4 P列:■3 Q列:■2 R列:MB10080100=00:00/NEW ---------------- というような データ が表示されるかと存じますが、この場合は、この先頭行の データ を クリップボード に積んでしまいますので、これを回避するとなると、ちょっと コーディング が厄介になります。 -------------------------------- >最終行に限らず途中で中止したい場合 >たとえば進行の途中でセルのエラーに気がついて直したいとき  そういうことでしたら、    MsgBox "「" & Selection.Text & "」から始まる グループ について" & vbCrLf & _     vbCrLf & "EmEditor での作業が終わったら OK してください。" の部分を    If MsgBox("「" & Selection.Text & "」から始まる グループ について" & vbCrLf & _     vbCrLf & "EmEditor での作業が終わったら OK してください。" & vbCrLf & _     vbCrLf & "操作を中止する場合は キャンセル してください。", 1) _     = vbCancel Then Exit Sub に置き換えてください。 ================================================ >元の内容がわからないと書き換える文字を決められない >元データをファィル名用に直してしまう手もある  ですよねぇ!  結局、この 「スタート位置の セル値」=「後々のファイル名」 これをやっつけてしまわないことには、冗長な操作の連続からは逃げられないかと存じます。 --------------------------------  それでは、そろそろ、この ファイル名 の問題に移りたいと存じます。 ---------------- 【ア】 >R3ですが、私もなんとか自動で表示できないか悩んでいる >あらかじめプルダウンメニューを作って置き換え文字を登録し >その都度選択する手があるかもしれません。  これにつきましては、VBA での操作は、通常 ユーザーフォーム に コンボボックス を配置することになりますので、VBA初心者には ハードル が高いかと存じます(こういうQ&A掲示板では「ユーザーフォーム」作成・運用の方法の手解きは難しいです)。 ---------------- 【イ】 >たとえばA3の中の特定文字を見つけて >そのときはある文字に置き換えるという方法もある  ≪常に≫「特定文字を見つけて」「ある文字に置き換える」ことができるのでしたら、コーディング はできます。  しかし、「置き換えることができる≪こともある≫」というような頻度では コーディング はできません。 ---------------- 【ウ】 >特定文字の種類が20通りくらいになってしまい >多すぎて式の中に取り込めない  各ブロック のどこかに「ファイル名」を決定することのできる要素が≪必ず≫入っているのでしたら、これは、十分、コーディング の余地があります。  たとえ、その種類が「20通り」であろうとも、例えば、A列 の「NEW」・「OLDMIX」や「○○○」・「△△」などの条件によって、対応する「ファイル名」を決めることができるのでしたら、その条件を コード に織り込めば良いだけのことです。

noro6857
質問者

お礼

>L列に「A」が存在しない場合、 >すなわち対象外はL列すべて空欄  これはどういう意味でしょうか? 補足記述のとおり勘違いです。 「キャンセル」についてはありがとうございました。 Lotus123のときにMenublanchとかMenucallといった語を用いてラジオボタンやダイアログボックス などのメニューボタンをよく作ったのでその分岐を意識していました。 【ア】【イ】【ウ】についてはマクロというより関数式で当てはめることを考えてました。 すなわちFINDで「○」があったら11文字目からうしろを「××××」に置き換え、なかったら次の語のFINDで「△」を探して置き換えてゆくというやり方で、そうすると20通りくらいになり長い式になってしまうという意味です。 テレビ番組のタイトルと同じように「ニュース」とか「天気予報」という定形的な言葉があるかと思えば 特番のようにどんなタイトルが登場するかわからないというケースもあります。 ある程度はルールを整理できないこともないのですが。 元データを直す場合は300行あるうちからその行を探すことになりけっこう手間にはなりそうです。 テキストにしてしまえばテキストごとに常に1行目だけということになるからです。 まあ、ここはあきらめて手動でがんばるっきゃないですね。 全作業で、ここだけ手動になるならそんなに苦にはなりません。 むしろ、現在手動の「保存メニュー」の呼び出しと、名前をつけて保存、ファィル名は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エディタを起動しても、個人用マクロの標準モジュールが表示されないのですが。