Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
ステップイン実行では成功するが通常に実行すると変数がとれない
投稿日時: 19/05/18 12:01:35
投稿者: takako-7

オートフィルターで抽出したデータを、抽出された日付をヘッダに指定して、印刷するVBAです。
ステップイン実行では成功しますが、通常に実行すると変数(年月)が変わりません。
 
以下がコードになります。
ご指導よろしくお願いします。
 
Dim vcd As String '日付
    Dim ヘッダ As String
    Dim 年月 As String
    Dim 行 As Long
Sub スケジュール連絡()
'
オートフィルターで抽出したデータに、抽出条件の月をヘッダにして印刷 '
 
'列を非表示
    Columns("A:F").Hidden = True
    Columns("J:J").Hidden = True
    Columns("Q:Q").Hidden = True
    Columns("S:V").Hidden = True
    Columns("y:AF").Hidden = True
     
'抽出されたデータの最初の行番号を取得
 
        行 = 17
        While ActiveSheet.Rows(行).Hidden
        行 = 行 + 1
        Wend
     
'取得した日付をヘッダに指定
    DoEvents
    vcd = Cells(行, 15)
    年月 = Format(vcd, "yyyy/mm")
     
    ヘッダ = 年月 & "  スケジュール"
      
'印刷設定
 
    DoEvents
    
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
 
    ActiveSheet.PageSetup.PrintArea = "仕入残金一覧"
    Application.PrintCommunication = False
     
    With ActiveSheet.PageSetup
  
'ヘッダー指定
        .LeftHeader = "&""Meiryo UI,太字""&12 " & ヘッダ
        .PrintComments = xlPrintNoComments
    End With
 
'印刷
  
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
     
    Application.PrintCommunication = False
 
'非表示をもどす
Columns("A:AF").Hidden = False
 
End Sub

回答
投稿日時: 19/05/18 12:25:19
投稿者: 半平太

ドタ勘ですけど、
 
DoEvents を ヘッダー指定後(印刷直前) に入れてみたらどうですか?
 
念を入れて、2個入れた方がいいかも知れない。

回答
投稿日時: 19/05/18 12:35:34
投稿者: simple

もう解決しているかもしれませんが、追加で。
Application.PrintCommunicationの扱いはこれでよかったのですかね。
プリントする段階ではFalseになっているようですが。
 
# 余談ですが、PrintCommunicationのふるまいが
# どうしてもコントロールできなかった苦い記憶があります。

投稿日時: 19/05/18 13:17:18
投稿者: takako-7

半平太様
 
ありがとうございました。
    DoEvents
をご指導どおりに、配置しましたら解決いたしました。
 
ヘッダに入らないので、ヘッダ指定前にいれていたのですが。。。
使い方が違うようですね。
早速にご回答いただき、とても助かりました。
 
 
 
simple 様
 
ご指導ありがとうございます。
VBAの勉強を始めたばかりで、意味もわからず、サンプル集から引用しています。
ですので、お指摘の内容が理解できませんでした。すみません。
 
早速にごコメントいただき感謝しています。