人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルについて質問です。

エクセルの指定したセルのデータを自動で抽出しメモ帳などのテキストファイルに自動で貼り付け、その後指定したフォルダに自動で順番にテキストファイルを保存(もしくはセルの指定したセルの値に.txtを付けて次から次へと保存できる)できるプログラムもしくは無料ソフトなどはありませんでしょうか?(似たようなソフトでも助かります。)大体100個ぐらい一度で処理できるといいです。

プログラムの場合ですが動作の流れを作ってみました。

セルA1に番号が セルB1には文章があります。

? まずメモ帳を開きます。

? メモ帳にセルB1の文章を貼り付けます。

? メモ帳のテキストデータにセルA1の番号を先頭につけ.txtで指定したフォルダに保存します。

? メモ帳を閉じます。

? 次に同じくA2 B2に入っているデータを読み込みテキストファイルを作成し、A1、B1のデータを保存した同じフォルダに保存していきます。

???を繰り返し100データ分ほど行っていきます。

以上のことは可能でしょうか。

お手数をおかけしますがよろしくお願いいたします。

●質問者: aiomock
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:A1 b2 txt エクセル セル
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● SALINGER
●13ポイント ベストアンサー

ExcelVBAで作りました。


VBAを使ったことがなければこちらを参考に

http://www.officepro.jp/excelvba/ini/index1.html

http://www.officepro.jp/excelvba/ini/index2.html

http://www.officepro.jp/excelvba/ini/index3.html


実行すると、保存するフォルダを選択することで、保存先を決めて、

A列の番号の名前をでテキストを作り、B列の内容で保存します。

Option Explicit

Sub TxtSave()
 Dim FSO
 Dim i As Long
 Dim Shell As Object
 Dim FolderPath
 
 Set Shell = CreateObject("Shell.Application") _
 .BrowseForFolder(0, "フォルダを選択してください", 0, "c:\")
 
 If Shell Is Nothing Then
 Exit Sub
 Else
 FolderPath = Shell.Items.Item.Path
 End If
 
 Set FSO = CreateObject("Scripting.FileSystemObject")
 
 Fold = FSO.getfolder(FolderPath)
 i = 1
 While ActiveSheet.Cells(i, 1).Value <> ""
 With FSO.getfolder(FolderPath).createtextfile(ActiveSheet.Cells(i, 1).Value & ".txt")
 .writeline ActiveSheet.Cells(i, 2).Value
 End With
 i = i + 1
 Wend
 Set FSO = Nothing
End Sub
◎質問者からの返答

変数が定義されていないですというエラーが出てくるのですがこれはどの様に解決すればいいのでしょうか?

セルの値を変数として定義しないといけないということでしょうか??


2 ● SALINGER
●26ポイント

ちょっと問題ありました。

B列のセルに改行が入っていた場合、うまく動作しないことの修正です。

下から6行目のwritelneの行を

.write Replace(ActiveSheet.Cells(i, 2).Value, vbLf, vbCrLf)

にしてください。

http://q.hatena.ne.jp/

◎質問者からの返答

すいません。動かせないです。。。


3 ● きゃづみぃ
●26ポイント

SALINGERさんの回答の手直しですが、

最初の箇所

Option Explicit

を削除するか

Sub TxtSave()

Dim FSO

Sub TxtSave()

Dim Fold

Dim FSO

にしたらいいでしょう。


http://q.hatena.ne.jp/answer

◎質問者からの返答

無事に動作確認できました。ありがとうございます。

もしセルA4に番号、AE4に説明文があるとしたらどういったプログラミングになるのでしょうか?

時間がある方おりましたら教えてください。よろしくお願いいたします。


4 ● きゃづみぃ
●25ポイント

>もしセルA4に番号、AE4に説明文があるとしたらどういったプログラミングになるのでしょうか?

その番号と 説明文をどのようにしたいのか かかれてませんので

それを 書いたほうがいいでしょう。

>? メモ帳のテキストデータにセルA1の番号を先頭につけ.txtで指定したフォルダに保存します。

この部分のA1がA4となりますので、

セルA4に入っている番号のファイル名になりますね。

AE4は説明文ということなので ファイルに保存したいならば

.write Replace(ActiveSheet.Cells(i, 2).Value, vbLf, vbCrLf)

の次に

.write Replace(ActiveSheet.Cells(i, "AE4").Value, vbLf, vbCrLf)

を入れれば保存されますが

4行目のときだけならば

if i=4 then

.write Replace(ActiveSheet.Cells(i, "AE4").Value, vbLf, vbCrLf)

end if

とすれば 4行目のときだけ 保存します。


あと回答は 2回までの制限にされているので、このあと質問があるなら コメントを有効にしてもらうか

回答数の制限を増やしてもらえればいいでしょう。

他の人が 回答してくれればいいですけど・・・。



http://q.hatena.ne.jp/answer

◎質問者からの返答

ご回答ありがとうございます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ