Excel VBAでモジュールを送る
- Excel VBAでモジュールのコピーをマクロで行う方法について教えてください。
- Excel VBAで二つのファイルを使っていますが、モジュールのコピーをマクロで行うことは可能でしょうか?
- Excel VBAでAファイルのモジュールをBファイルにコピーする方法について教えてください。
- ベストアンサー
ExcelVBAでモジュールを送る
ちょっとわかりにくいかもしれませんが、モジュールのコピーをマクロでできないものでしょうか? ExcelVBAで二つのファイルを使っています。Aという何のデータも入っていないファイルなのですが、実はそれにモジュールが書いてあり、それ専用に使っています。 CSVデータを変換したり、図形を描いたり、グラフを作るプログラムが書いてあります。 そのAファイルを使ってCSVデータ「Bファイル」を起動します。BファイルはダウンロードしてきたCSVファイルです。 Aファイルは常に個人個人がもっているのですが、CSVはネット上からダウンロードしています。 当然Aファイルが常に起動していないと、Bファイルだけでは「CSV変換」や「図形描写」ができないのわけです。「CSV変換」は最初の1回で終わる話ですが、「図形描写」「グラフ作成」はその後何度もすることがあります。 単にBファイルからマクロのインポートなどをすれば済むのかもしれませんが、数多くの使用者の中には「マクロのイン・エクスポートができない」とか「めんどくさい」という方がいます。外部にデータを引き渡す際に、AとBの両方送らねばならなくなってしまいます。 で・・・お伺いしたいのはマクロで「Aファイルのモジュール」を「Bファイルの中にコピー」できないか?ということなんです。 Aファイルでボタン一つを押せば、すべて整う環境にしたいのです。 逆に「AファイルにBのCSVデータをコピーして、そこで使うようにすれば?」と聞いたのですけど、それはどうしても出来なかったときの最低ラインとし、出来れば「Aのモジュール→BのCSV」に行きたいのだそうです。 マクロでモジュールのコピーというのは・・・出来るものなのでしょうか?よろしければ教えてください。
- quincy
- お礼率90% (121/133)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
csvにモジュールを取り込んでも、xlsで保存しないと意味無いですし、一歩間違うと怪しいシロモノと思われてしまうような気がします。 写すモジュールとは別モジュールに書くなど工夫が必要でしょうね。 コピーではないけど。 Sub test() Dim fName As String On Error GoTo ER: With ThisWorkbook fName = .Path & "\myModule" .VBProject.VBComponents("Module1").Export fName Workbooks.Add.VBProject.VBComponents.Import fName Kill fName End With ER: End Sub
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
#1です。 dim wb as workbook set wb = workbooks.open("c:\test.xls") のようにして wb.VBProject.VBComponents.Import fName のような感じかな。 Module1に図形、グラフマクロ Module2にこのマクロ って感じにして Module1 のみ写す。 同時に開いている不特定なブックに対して、、、のような例だとラルーウィルスみたいになってくるので止めときます。
お礼
そうか・・・だから下の方で「怪しい」と仰っていたんですね。わかりました。なぜ怪しんだろう?って不思議だったんです。怪しいことはしないのですが、一応私も逆データを取り込めば?と言ったら「それはどうしても出来ないときに!」と言われてしまって。 まだまだそういうレベルではありませんが(笑)、また何かありましたらよろしくお願いします。
関連するQ&A
- マクロ 上位モジュールの作成
4つのマクロ(basファイル)A,B,C,Dがあります。 これらを下位モジュールとする、上位モジュールをつくり 条件に応じてマクロを実行させたいと思っています。 どのようにマクロになりますでしょうか? 条件はファイル名に32~38の数字が含まれていて 32~35まではAの処理、 36はBの処理、37はCの処理、38はDの処理をしたいと考えています。 イメージとしては IF ファイル名=*32.csv or *33.csv or *34.csv or *35.csv Then A.bas elseif ファイル名=*36.csv Then B.bas elseif ファイル名=*37.csv Then C.bas elseif ファイル名=*38.csv Then D.bas end if 上記のような感じでIF文を全てのファイルを処理するまでループさせたいのですが、どなたかお教えいただけないでしょうか?
- 締切済み
- その他MS Office製品
- ExcelVBAでフォルダ内の全csvを開き一行に
ExcelVBAで、指定フォルダ内の全csvファイルのデータを開き 行列変換して一行毎に並べていきたいのです。 csvファイル数は、処理する時により、増減あります 似たような質問もあるようですが、いくつか見比べるとコマンドが異なってると、混乱してしまい、通しで回答いただけると、理解もできるかと質問させていただきます。 よろしくお願いいたします。 ■操作&データ並べるファイル Sheet:menu こちらに、指定フォルダなど入力、マクロ実行ボタン配置 Sheet:data こちらに、1行づつ、csvファイルのデータを貼り付け ■csvデータ:1001.csv、1002.csv、・・・、1010.csv ■各csvデータ の並び A列 B列 C列 日付 04/01 時間 10:32 番号 1001 A1 OK 0.12 A2 OK 4.92 A3 NG 7.89 B1 0.05 B2 0.95 C1 101.2 C2 95.4 ・ ・ ーーーSheet:data の貼り付け後の並びーーーーーーーーーーーーーー 1001 04/01 10:32 0.12 4.92 7.89 0.05 0.95 101.2 95.4 ・ 1002 04/01 10:45 ・ ・ ・ ・ ・ ・ ・ ・ 1003 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 1010 ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー csvのデータは、3列で100行ほどありますが、 必要なデータの場所は、列が変わったりします
- ベストアンサー
- Excel(エクセル)
- ExcelVBAモジュールのコピーと削除
ExcelVBAで教えて下さい。 同じようなデータ形式のファイルが年度ごとにあるので、それを処理するモジュールを作成しました。 私は雛型を作っただけで、実際のファイルの処理をするのは他の人なのですが、雛型ファイルに付いているコードが書かれた「モジュール」は、VBAの画面からのドラッグでのコピーしかできませんか? また、処理を実行後はモジュールを削除したいのですがそのようなことは可能でしょうか?コードで書けるのでしょうか?もし可能でしたら教えていただけますと幸いです。 初歩的な質問で申し訳ありませんが、よろしくお願い致します。
- ベストアンサー
- Visual Basic
- EXCELのマクロをバッチファイルから起動させ、あるフォルダ内のCSVファイルをTXTファイルに変換。
あるフォルダにdata.csvというファイルがあります。 一つ目の質問は、EXCELのマクロで「あるフォルダ内にある***.csvを開く」という動作はどのように記述されますか? 2つ目の質問はバッチファイルあるいはスクリプトファイルでEXCELのこのマクロを実行させることは可能ですか。どのように記述したらよいのでしょうか。 3つ目はセルA1~A10の値をx B1~B10の値をyとしてグラフを描かせるコマンドはありますか。
- ベストアンサー
- オフィス系ソフト
- csvをエクセルに取り組みたい。初心者
csvをエクセルに自動マクロ機能で取り込むように設定しました。 12ケタの数字を取り込みたいが9.73E+11となってしまいます。 aのフォルダにa.csv と b.xlsxがあります。 a.csvにダウンロードしたものをb.xlsxに読み込みたいです。 12行のデーターの中から2個のデーターだけを読み込みたいのですが 12ケタの数字もそのままの数字で読み込むことは不可能なのでしょうか? 今まではcsvの表示形式を数字に変換してからブック形式に保存。 そして、テキストにデーターを張り付けてデーターを使用していました。 ブックからデーターをコピーして貼り付けると数字が半角になっていないためできませんでした。 この一連の作業を自動でできたらうれしいかなと思いましたが無理でしょうか? もし、わかる方がおられましたら教えてください。 よろしくお願いします。
- 締切済み
- 財務・会計・経理
- マクロ:他シートにデータをコピーしたい
Excelのマクロについてです。 シート1にデータが有り、その中のB列に「済」と記入されている行のみ シート2にコピーして転記したいのです。 これだけなら簡単なのですが データ内には複数行にまたがってのセル結合がされてあったり 図形描写やテキストボックス等も混ざってあります。 それらもまとめてコピーしたいのですが、マクロで何とかなるのでしょうか?
- ベストアンサー
- Excel(エクセル)
- ExcelVBA マクロエラー値の取り出し方
Excel2002VBAを利用してcsvファイルを読込み、任意のシートへ貼り付ける処理を作成しています。 フォームのボタン押下により、マクロ記録で作成したシートへの貼りつけ処理を行う際、csvファイルが存在していないと、Err.Number=1004が発生してしまいます。 これをOnErrorでキャッチしてマクロの中でWk_ErrCode(フォームモジュールでPublicで定義)へセットし、フォームモジュールへ戻る処理を組んだのですが、戻り値が0になってしまい、後続処理を迂回出来ない様です。 出来れば、Err.Numberを利用したままエラー判定処理をフォームモジュールで行いたいのですが、良い方法は有りませんでしょうか。。。
- ベストアンサー
- オフィス系ソフト
- ACCESS:97→2002のモジュールの変換エラーについて
ACCESS97で作成したファイルをACCESS2002に変換したいのですが、 変換中にコンパイルエラー発生しましたとメッセージが表示されてしまいました。 ファイル自体は変換できておりエラーテーブルを見るとモジュールが変換エラーを起こしていました。そのモジュールを実行させるとやはりエラーが出て止まってしまいます。 ~モジュールの内容は~ テーブルを削除するために削除クエリーの実行(これはうまく動いてます。) フォームに入力されたパスのCSVファイルをインポートする。定義名:CSVインポート定義"インポート先:"CSVテーブル" (これがうまく動かないようです。実行させると「このファイルをインポートできません」とメッセージがでます。) 以下のものになります。 Option Compare Database Option Explicit '------------------------------------------------------------ ' CSVインポート ' '------------------------------------------------------------ Function CSVインポート() On Error GoTo CSVインポート_Err Dim parm1 As String parm1 = Forms!報告書作成!インポートパス & " " ' 入力データ削除query DoCmd.OpenQuery "全て削除クエリー", acNormal, acEdit ' インポート実施 DoCmd.TransferText acImportDelim, "CSVインポート定義", "CSVテーブル", parm1, False, "" CSVインポート_Exit: Exit Function CSVインポート_Err: MsgBox Error$ Resume CSVインポート_Exit End Function もし不足な点がありましたら補足させていただきます。 よろしくお願いします。
- 締切済み
- オフィス系ソフト
- このようなエクセルマクロを組みたいのですが...
下記のようなマクロを組みたいと思っていますが、 知見がほとんどないので教えていただきたいと思います。 "csv"というフォルダにランダムなファイル名でcsv形式のファイルが100以上保存されています。 目的は、 そのcsvファイル内の一部のデータをひとつのファイル(ファイル名を"まとめ"とします)に移して並べたいと思います。 <前提> "csv"フォルダと"まとめ"ファイルは既に開かれている状態とします。 "まとめ"ファイルを開いた状態で、マクロを走らせると、 (1)csvファイルが開く (2)セルA1とB1をコピー (3)"まとめ"ファイルのA1、A2へ貼り付け(行と列を変更) (4)csvファイルを閉じる (5)次のcsvファイルが開く (6)セルA1とB1をコピー (7)"まとめ"ファイルのB1、B2へ貼り付け(行と列を変更) (8)csvファイルを閉じる 以降、"csv"フォルダの中身をすべて処理できるまで繰り返し。 という風に考えていますが、 当方あまり知識が無くアレンジが難しいためできる限りシンプルにと考えています。 そのため、もしこうした方が...等あればアドバイスいただけるとありがたいです。 すみませんがよろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
お礼
遅くなりました。回答ありがとうございます。いろいろとやり方を変えたりして・・・とりあえず解決しました。いつも感謝しております。今後も何かありましたらよろしくお願いします。
補足
言葉が足りなかったです。CSVファイルと書きましたが、ちゃんとxlsファイルになっているはずです。ただそのデータファイルを「CSVファイル」と通称で呼んでいるのでそういってしまいました。エクセルファイルです。 5行目をちょっと変えてコピペすれば、何とかなるものでしょうか?