• 締切済み

VBAでエクセルからのファイル名とテキスト化を自動で実行する方法

マクロを実行して、エクセルのセルからファイル名とテキストファイルを自動で出力したいのですが、VBA初心者なのでプログラムの書き方がわかりません。 どうかVBAのプログラムの書き方を教えて下さい。 【マクロ実行前のエクセル状態】 1.エクセルのA列にファイル名1を入力 2.エクセルのB列にファイル名2を入力 3.エクセルのC列にテキスト出力させたい文字列を入力 【期待のマクロ動作】 ファイル名1+ファイル名2のファイル名でC列の文字列をテキストファイルで出力。 《例》 A B C 1 2 あ ⇒マクロ実行⇒ファイル名『12』テキスト内容『あ』 3 4 い ⇒マクロ実行⇒ファイル名『34』テキスト内容『い』 5 6 う ⇒マクロ実行⇒ファイル名『56』テキスト内容『う』 7 8 え ⇒マクロ実行⇒ファイル名『78』テキスト内容『え』 ・ ・ ・ ・ 上記の様に、一回のマクロ実行で入力されている列のセル全て がファイル名付きのテキストファイルとして出力をさせたいです。 申し訳ありませんが、よろしくお願いいたします。

みんなの回答

  • argument
  • ベストアンサー率63% (21/33)
回答No.2

はじめまして、hiro19hiro さん 寒くなってきましたね。風邪でのが痛いです。 さておき、初心者なので何を検索すればいいのか解らないのですねわかります。 VBAで処理をする事がわかっているならば、VBAで検索すればあらゆるVBAにおける知識を得ることができるでしょうがそうではないのでしょう。 処理に必要な構文だけ知りたいのですね? 私もいつも思います。私の作りたいオートメーション化に必要なコマンドだけ表示してくれないかと・・。 ですがVBEはそのように補助してくれるほど便利な機能を持っていません。非常に残念です。 なのでwin32APIやらオブジェクトのプロパティなどを毎回探してしまいます。 さて、逆に言えば必要な単語・構文さえあれば検索できますね? googleを知っていますか? http://www.google.co.jp/ 処理に必要な構文を教えますのでこちらで検索してください。逐一単語を検索VBAと合わせて検索すればあなたの学びたい知識を得ることができる事でしょう。 内容を纏めますね(以下のコードを作成する事) ・Aセル+Bセルの名前でCセルの内容を記述したファイルを作成する。 ・保存先は指定なし。A・B・Cセルの何れかが入力されている行の最大行まで処理をする。 ではこの処理に必要なもとい、検索に必要な「単語・構文」もとい回答を掲示しましょう。 Sub makefile() ml = 0: For i = 0 To 2: tp = Range(Chr(97 + i) & "65536").End(xlUp).Row: If ml <= tp Then ml = tp Next: For i = 1 To ml: CreateObject("scripting.filesystemobject").CreateTextFile(CreateObject("WScript.Shell").SpecialFolders("desktop") & "\" & Range("a" & i).Value & Range("b" & i).Value).write Range("c" & i).Value: Next End Sub 実行してみましたか?あなたの質問の条件をみたしていると思います。 説明?勉強したいんですよね?さっきお勧めしたgoogleをお使いください。 処理違いがあれば言って下さい。 それからポイントは要らないのでもし解決したのなら解決済みにしてください。

参考URL:
http://www.google.co.jp/
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

で、あなたはどこまで理解していて何が分らないのでしょう? その点を明示していただかないとわれわれ回答者は回答できません シートのセルの参照には CellsまたはRangeなどを使う 文字列の連結には &演算子 ファイルの作成には Open データの出力には Print #または Write # ファイルを閉じるためには Close 繰り返し処理のためいは For、While、Do...Loopなど

関連するQ&A