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

このコードに追記事項の仕方を教えて下さい。
以下のコード内容に出てくる。セルH3が空白の場合、エラーが出るため、空白の場合、メッセージ「未入力です」が出る様に改良したいです。
宜しくお願いします。

Sub PDF()
'
' pdf Macro
    ActiveSheet.PrintOut
    Const Folder As String = "C:¥Users¥Home¥Desktop"
    Dim fname As String
    Dim fpath As String
    Dim i As Long
    Const ext = ".pdf"
    i = 0
    fname = Range("H3").Text
    fpath = Folder & "¥" & fname & ext
    i = 0
    While Dir(fpath) <> ""
        i = i + 1
        fpath = Folder & "¥" & fname & Format(i, "(#)") & ext
    Wend
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fpath, Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

End Sub

A 回答 (4件)

chatGPTは以下のように答えました


よくウソをつくやつなので検証してね


Sub PDF()
'
' pdf Macro
Dim H3Value As String
H3Value = Range("H3").Text
If H3Value = "" Then
MsgBox "未入力です"
Exit Sub
End If

ActiveSheet.PrintOut
Const Folder As String = "C:¥Users¥Home¥Desktop"
Dim fname As String
Dim fpath As String
Dim i As Long
Const ext = ".pdf"
i = 0
fname = H3Value
fpath = Folder & "¥" & fname & ext
i = 0
While Dir(fpath) <> ""
i = i + 1
fpath = Folder & "¥" & fname & Format(i, "(#)") & ext
Wend
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fpath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。助かります。試してみます!

お礼日時:2023/08/03 02:21

そのプログラムがどんな動きをしているのかすら理解していないのに、これ以上他人に


「代わりに作れ」的な依頼をするのは、自分の首を絞めるだけになるから
 やり方を変えなさい。
……とアドバイスしたつもりなんだけど、伝わりませんでしたか。

とりあえず、今のそのコードにコメントアウトした説明を加えるようにしてみましょう。
そうすることで、
 どこで
 どんな動作
をしているのかを正しく把握できます。
そうやって全体の流れを理解したうえで、
 どこに
 どんな動作
を加えればよいのかを考えてください。

そのうえで、

/***投稿ガイドラインから抜粋***
■宿題や課題などの「作業依頼(丸投げ)」
学校の課題等に関して、ご自身なりに解答を考えたプロセスの説明も無く、単に解答のみをそのまま依頼・募集するような内容(いわゆる「丸投げ」)の投稿は、閲覧される方や回答者に不快に思われる恐れがあります。
また、社会的マナーや回答者に対する敬意や配慮、尊重の気持ちにも欠けていると思われる場合もありますので、お控えください。
まずはご自身で課題に取り組み、その結果どうしても一部の箇所について理解が出来ない、どう進めばいいか分からない、といったようなご自身なりの解答プロセスの説明もした上でアドバイスを求めるようにしましょう。
***ここまで***/

を理解して質問投稿するようにしましょう。
    • good
    • 0
この回答へのお礼

長々、アドバイスありがとうございました。

お礼日時:2023/08/03 18:40

' pdf Macro


の直後に

If Cells(3, 8).Value = "" Then
MsgBox ("H3セルが未入力です")
Cells(3, 8).Select
End
End If

を挿入
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます。助かりました。お騒がせ致しました。

お礼日時:2023/08/03 18:38

エラーを検出するための方法が知りたいのでしょうか?


それともエラーであることを表示する方法を知りたいのでしょうか?

……このように具体的に何を知りたいのかを考えてみましょう。
そうすることで、自身で調べることができるようになります。
試しにやってみてください。
30分もあれば自力で解決できると思います。

・・・

ここは自力で解決するためのアドバイスを貰う場所です。
「代わりにマクロを作って」と作業依頼する場所ではないのです。

そんなわけで、調べたうえで思い通りにならないなら、
「どのような記述をして、それでどうなったのか」
を書くようにしてください。
何を間違えているか、何を勘違いしているのか、何が足りないのか、
などのアドバイスをしてくれますよ。

「代わりにマクロを作れ!俺様の成果として使ってやるwww」
なんて言われてもねえ。
チョット調べたくらいでは絶対に解決できないところまで他人を頼るように仕向けてポイっと捨ててやろうか……なんて人もいるので注意しましょう。
    • good
    • 1
この回答へのお礼

ありがとうございます。仰る通り申し訳ないですが、色々、調べてみたのですが、自力で無理と悟りました。このコードも他人様のご教授のお陰であります。感謝です。
内容は、セルH3に日付が入力された場合、印刷後、日付を名前にして、PDFにて保存するしくみでしたが、空白だとエラーが出て保存前で止まってしまうのです。空白のメッセージが出たら、マクロをやり直して解決と言う方法が知りたかったです。
ご教授頂ける方、宜しくお願い致します。

お礼日時:2023/08/03 00:49

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