アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのマクロについて教えてください。
マクロを実行して、テキストファイルを作成、そのテキストファイル名及び
テキストファイルの内容をマクロを設定しているシートとセル値を設定できますでしょうか。
私の希望が叶うようであれば、詳しいい内容を補足させていただきます。
よろしくお願いいたします。

質問者からの補足コメント

  • 回答ありがとうございます。
    私の希望をお伝えしますので
    出来ればVBAコードを教えていただけますか。
    よろしくお願いいたします。
    希望
    ファイル名:指定シート「青紙表」セル「CK1」をテキストファイルのファイル名としたいです。
    ファイルの中の文章
    宛先を
    シート「審査」セル「B1」として
    次に、固定文字-1
    「お世話になっております、回答書を確認いたしましたが、下記の内容を再度ご確認ください。」
    次に、固定文字+編集
    「弊社、決裁者より、指摘事項 質疑書:№ 図の添付が確認できませんでした。 図をWebにアップをお願いします。 質疑書:№ が未修正です。 修正図書をWebにアップをお願いします。」を物件によって内容を変更したいです。 次に 固定文-2 「以上です。 よろしくお願いします。」

    No.1の回答に寄せられた補足コメントです。 補足日時:2023/07/14 14:55
  • うーん・・・

    次に、担当者名
    固定文字で「担当者:」 担当者の指定シート「審査」セル「G13」 以上までがテキストファイルの構成です。
    上記で作成した、テキストファイルを作業中のフォルダ(マクロを設定している作業ブックと同じフォルダ)に保存をお願いします。
    尚、メッセージボックス等は非表示でお願いいたします。
    よろしくお願いいたします。
    何卒宜しくお願い致します。

      補足日時:2023/07/14 14:56
  • 回答ありがとうございましす。
    説明が不足しており、申し訳ありません。
    1行目は宛先ですがシート「審査」のセルB1「=IFERROR(VLOOKUP("✔",L1:R4,2,FALSE)&" "&VLOOKUP("✔",L1:R4,3,FALSE)&"  様","")」を設定してますので大丈夫です。
    又、次に3行目ですが、ここは物件によって記載内容が異なりますので、少しでも記載事項を減らす意味もあり補足のようにしました。
    最低でも「お世話になっております、回答書を確認いたしましたが、下記の内容を再度ご確認ください。」と「 修正図書をWebにアップをお願いします。」と 「以上です。 よろしくお願いします。」
    は常に固定としたいです。
    よろしくお願いいたします。

    No.2の回答に寄せられた補足コメントです。 補足日時:2023/07/14 16:15
  • 何度も
    ありがとうございます
    セル部分と固定文字部分は
    間違いありません
    下記の内容を再度ご確認ください。
    上の文字例と下の文字例の間のこの部分に、物件ごとの文字を自由に書き込みをして
    一つのテキストファイルを完成させたいのですが、可能でしょうか?
    修正図書をWebにアップをお願いします
    よろしくお願いします

      補足日時:2023/07/14 21:13
  • 何度も何度も
    ありがとうございます
    自由文につきまして
    承知致しました
    ファイル名に使用する
    セルには
    物件ごとに決まっているIDと物件名のみで
    拡張子はありません
    よろしくお願いします

      補足日時:2023/07/14 21:38

A 回答 (5件)

以下のマクロを標準モジュールに登録してください。



Option Explicit

Public Sub テキストファイル作成()
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim fname As String
Dim result As Boolean
Dim err_str As String
Dim atesaki As String
Dim tanto As String
Dim text_path As String
Set ws1 = Worksheets("青紙表")
Set ws2 = Worksheets("審査")
fname = ws1.Range("CK1").Value
If fname = "" Then
MsgBox ("ファイル名が空白です")
Exit Sub
End If
result = CheckFileName(fname, err_str)
If result = False Then
MsgBox ("ファイル名として使用できない文字[" & err_str & "]があります")
Exit Sub
End If
atesaki = ws2.Range("B1").Value
If atesaki = "" Then
MsgBox ("宛先が空白です")
Exit Sub
End If
tanto = ws2.Range("G13").Value
If tanto = "" Then
MsgBox ("担当者が空白です")
Exit Sub
End If
text_path = ThisWorkbook.Path & "\" & fname & ".txt"
Open text_path For Output As #1
'宛先
Print #1, tanto
'固定文字
Dim fstr1 As String
Dim fstr2 As String
Dim fstr3 As String
fstr1 = "お世話になっております、回答書を確認いたしましたが、下記の内容を再度ご確認ください。"
fstr2 = "修正図書をWebにアップをお願いします。"
fstr3 = "以上です。 よろしくお願いします。"
Print #1, fstr1
Print #1, fstr2
Print #1, fstr3
'担当者
Dim vstr1 As String
vstr1 = "担当者:" & tanto
Print #1, vstr1
Close #1
End Sub
'ファイル名として使用できない文字が含まれているかチェックする
Public Function CheckFileName(ByVal fname As String, ByRef err_str As String) As Boolean
Dim estrs As Variant
Dim i As Long
Dim estars As Variant
CheckFileName = False
estars = Array("\", "/", ":", "*", "?", "<", ">", "|", """")
For i = 0 To UBound(estars)
If InStr(fname, estars(i)) > 0 Then
err_str = estars(i)
Exit Function
End If
Next
CheckFileName = True
End Function
    • good
    • 0
この回答へのお礼

おはようございます
色々と教えて頂き感謝致します
上手くできました

お礼日時:2023/07/15 05:43

No3です。

補足ありがとうございました。

1.文字コードはシフトJISと解釈しました。
2.下記の件
>上の文字例と下の文字例の間のこの部分に、物件ごとの文字を自由に書き込みをして
>一つのテキストファイルを完成させたいのですが、可能でしょうか?

自由に書き込みをするのは、テキストファイルを作成後、メモ帳などで、
作業者が手作業で行うということでしょうか。(マクロは関知しない)
それであれば、問題ないです。

3.出力ファイル名ですが、
出力ファイル名が、「サンプル.txt」の場合、

シート:青紙表のCK1セルの内容は、
①サンプル
②サンプル.txt
のどちらでしょうか。
つまり、CK1セルは、拡張子を含めた名前で定義するのでしょうか。
それとも、拡張子を除いた名前を登録するのでしょうか。
という質問です。
    • good
    • 0

以下の内容で間違いないでしょうか。

①②がセル内の文字で、以外は固定文字です。
-----------------------------------------------------
①⏎
お世話になっております、回答書を確認いたしましたが、下記の内容を再度ご確認ください。⏎
修正図書をWebにアップをお願いします。⏎
以上です。 よろしくお願いします。⏎
担当者:②⏎
-----------------------------------------------------
①(宛先) シート:審査 のB1セルの内容
②(担当者名) シート:審査 のG13セルの内容
出力ファイル名:シート:青紙表のCK1セルの内容
⏎は、テキストファイルへ出力した時の改行コードの位置になります。
テキストファイルの文字コードはシフトJISで間違いないでしょうか。


「下記の内容を再度ご確認ください。」の下記の内容についてですが、
下記の内容に該当するものが見当たりません。
下記の内容とは何のことだろう、と宛先の方は思ってしまうと思いますが、それは杞憂でしょうか。
杞憂であれば、問題ありません。無視してください。
    • good
    • 0

shut0325です。



ほぼテキスト操作ですね。

まずは、実際の体裁通りの文を作られることからされた方が良いかと思います。

その上で、情報がやや足りないように思います。

まず、1行目は宛先とのことですが、様 や 御中 などの付与はされなくてよいのでしょうか?

次に3行目にあたると思われるところの、No.となっている部分ですが、No.+該当図書番号 ではないでしょうか? その場合、図書番号が書かれているセルはどこでしょうか?

その上で、「物件により分岐(変わる)」ということですが、その分岐条件は何の値で判断するのでしょうか?
この回答への補足あり
    • good
    • 1

はい。

できますよ。

やり方はいくつかあります。私はVBSで書く場合もあり、FileSystemObjectを利用して実現しています。

下記ページをを参照/応用されるとよいかもしれません。

https://excel-vba.work/2022/02/12/vba%E3%83%86%E …
この回答への補足あり
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!