お世話になります。
エクセルで作成したデータをメモ帳で保存したいのですが
ファイル名は作成者が任意で決め、保存先アドレスをあらかじめ指定しておくにはどうしたら良いでしょうか。
ネットで下記のように色々探したのですが
ファイル名は決めることが出来ても保存先が指定出来なかったり、
その逆だったりとなかなか上手くいきません。
ご教示よろしくお願い致します。
Option Explicit
' テキストファイル書き出すサンプル
Sub WRITE_TextFile()
Const cnsTitle = "テキストファイル出力処理"
Const cnsFilter = "テキストファイル (*.txt;*.dat),*.txt;*.dat"
Dim xlAPP As Application ' Applicationオブジェクト
Dim intFF As Integer ' FreeFile値
Dim strFileName As String ' OPENするファイル名(フルパス)
Dim vntFileName As Variant ' ファイル名受取り用
Dim strREC As String ' 書き出すレコード内容
Dim GYO As Long ' 収容するセルの行
Dim GYOMAX As Long ' データが収容された最終行
Dim lngREC As Long ' レコード件数カウンタ
' Applicationオブジェクト取得
Set xlAPP = Application
' 「名前を付けて保存」のフォームでファイル名の指定を受ける
xlAPP.StatusBar = "出力するファイル名を指定して下さい。" ' ①
vntFileName = xlAPP.GetSaveAsFilename(InitialFilename:="SAMPLE.txt", _
FileFilter:=cnsFilter, _
Title:=cnsTitle)
' キャンセルされた場合はFalseが返るので以降の処理は行なわない
If VarType(vntFileName) = vbBoolean Then Exit Sub
strFileName = vntFileName
' 収容最終行の判定(Excel認知の最終行から上に向かってデータがある行を探す)
With ActiveSheet
If .FilterMode Then .ShowAllData ' オートフィルタ解除
End With
GYOMAX = Cells(65536, 1).End(xlUp).Row ' ②
If GYOMAX < 2 Then
xlAPP.StatusBar = False
MsgBox "テキストをA列2行目から入力してから起動して下さい。", , cnsTitle
Exit Sub
End If
' FreeFile値の取得(以降この値で入出力する)
intFF = FreeFile
' 指定ファイルをOPEN(出力モード)
Open strFileName For Output As #intFF ' ③
' 2行目から開始
GYO = 2
' 最終行まで繰り返す
Do Until GYO > GYOMAX
' A列内容をレコードにセット(先頭は2行目)
strREC = Cells(GYO, 1).Value ' ④
' レコード件数カウンタの加算
lngREC = lngREC + 1
xlAPP.StatusBar = "出力中です....(" & lngREC & "レコード目)"
' レコードを出力
Print #intFF, strREC ' ⑤
' 行を加算
GYO = GYO + 1
Loop
' 指定ファイルをCLOSE
Close #intFF
xlAPP.StatusBar = False
' 終了の表示
MsgBox "ファイル出力が完了しました。" & vbCr & _
"レコード件数=" & lngREC & "件", vbInformation, cnsTitle
End Sub
No.1ベストアンサー
- 回答日時:
以下のようにしては、どうでしょうか。
Sub WRITE_TextFile() へ
①
Const cnsFolder = "d:\sample\foldername"・・・この行を追加 格納フォルダ名(d:\sample\samplefoldernameへ格納する場合)
②
vntFileName = xlAPP.GetSaveAsFilename(InitialFilename:="SAMPLE.txt", _・・・を
vntFileName = xlAPP.GetSaveAsFilename(InitialFilename:=cnsFolder, _・・・に変更
No.2
- 回答日時:
こんにちは。
このような書き方をするのは、Excelでお仕事の井上さんのもののようです。
質問で全文のコードを載せる場合は、マナーとして引用先は書いた方がよいですね。
それと、ご質問内容とコードは一致していないようです。
フォルダーは決めておいて、名前をつけないままのメモ帳を出したいというと、コードがまったく違ってきます。
たぶん、一般的にはどこにも出ていないはずです。そんな特殊なコードを書く人は、本当にマレです。
>エクセルで作成したデータをメモ帳で保存したいのですが
元のコードは、一列のみのようですが、それでよいのでしょうか?
一応、現在のものを活かすなら、
>ファイル名は作成者が任意で決め、保存先アドレスをあらかじめ指定しておくにはどうしたら良いでしょうか。
それに、保存先のフォルダーを先に与えて置けばよいだけですが。
'任意の場所↓(ご自身でて書き換えてください)OneDriveに指定しています。
mPath ="C:\Users\" & Environ("UserName") & "\OneDrive\ドキュメント\"
strFileName = mPath & strFileName
-----------------------------------
>FreeFile値の取得(以降この値で入出力する)
>intFF = FreeFile
>' 指定ファイルをOPEN(出力モード)
>Open strFileName For Output As #intFF ' ③
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) Excelにて、フォルダ内のTextファイルをマクロで統合すると文字化けしてしまう時の解消コード 4 2023/01/01 07:32
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
エクセルのデータをメモ帳に貼り付けて名前を付けて保存する方法
Visual Basic(VBA)
-
エクセルVBA テキストに出力、名前を付けて保存
Excel(エクセル)
-
-
4
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
5
VBA メモ帳の上書き保存がしたい
Ruby
-
6
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
7
VBA 新規ファイルを元ファイルと同じ場所に保存する方法
Excel(エクセル)
-
8
新規にメモ帳を起動して、「test」と入力したい
PowerPoint(パワーポイント)
-
9
Excelからテキストへのコピーペースト
その他(Microsoft Office)
-
10
既存のテキストファイルを開く方法
Visual Basic(VBA)
-
11
VBA メモ帳で ” を消去する方法
Excel(エクセル)
-
12
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シェルコマンドの 2>&1 とはど...
-
printfだと出力されるのにfprin...
-
Acccess レポートをグループ別...
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
コマンド(例えばls)の出力結果...
-
fortranのtxtファイル出力書式...
-
テキストの各行に行番号をつけ...
-
VBA でメモ帳へ保存する際の保...
-
ストリーム 意味について。
-
拡張子.vsdをイラストレーター...
-
UNIX & Linux の標準出力で得た...
-
BitBltについて。
-
CreateProcess関数と実行後の戻...
-
pLaTeX の EPSファイル読み込み...
-
ファイル出力の場所を指定
-
ファイルの文字コードをUTF-8に...
-
アクセス>マクロ>テキスト変換
-
1行ずつではなくまとめてファイ...
-
サウンド出力のデバイスを選択...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンド(例えばls)の出力結果...
-
Acccess レポートをグループ別...
-
VC++でUTF-8のファイルを出力し...
-
サウンド出力のデバイスを選択...
-
ファイルの文字コードをUTF-8に...
-
VBA でメモ帳へ保存する際の保...
-
ファイル出力の場所を指定
-
ファイル形式またはファイル拡...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
Wordマクロで指定したフォルダ...
-
AccessVBA複数レポート条件毎に...
-
二次元配列をクリップボードに...
-
UNIX & Linux の標準出力で得た...
-
フォルダにあるPDF情報の抽出(VBA)
-
C++ BuilderでPDF出力
-
VBSでEXCEL⇒CSV変換で日付の書...
-
fortranのtxtファイル出力書式...
-
CBool関数について VB6とVB.net...
-
ワードからPDF変換でグラフが表...
おすすめ情報