【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

いつもお世話になります

今、Userform上のコマンドボタンを押すとページセットアップ画面が出て
セット出来るようにしていますが

横向きを縦向きに帰ると、Excel上のページセットアップでは変更されているのに
下記のプログラムの
If Worksheets(ws.Name).PageSetup.Orientation = xlLandscape Then
ではその変更がチェックできません

bRet = Application.Dialogs(xlDialogPageSetup).Show
If bRet = False Then
'MsgBox "キャンセルボタンが押されました"
Worksheets(bName).Select '...複数選択解除(Activateでは解除されない)
Exit Sub
Else
'MsgBox "OKボタンが押されました"
Worksheets(bName).Select '...複数選択解除(Activateでは解除されない)

OptionButton4.Value = True
For Each ws In Worksheets

k = 0
If Worksheets(ws.Name).Visible = True Then
k = k + 1

If Worksheets(ws.Name).PageSetup.PaperSize = xlPaperA4 Then
If Worksheets(ws.Name).PageSetup.Orientation = xlLandscape Then
ListView1.ListItems(k).Checked = True
Else
ListView1.ListItems(k).Checked = False
End If
ElseIf Worksheets(ws.Name).PageSetup.PaperSize = xlPaperA3 Then
If Worksheets(ws.Name).PageSetup.Orientation = xlLandscape Then
ListView1.ListItems(k).Checked = False
Else
ListView1.ListItems(k).Checked = True
End If
End If
End If
Next ws

End If


フォームを閉じてチェックするとチェックできますが、フォームを閉じずにチェックしたいのですが
もし、分かりましたら教えてください

A 回答 (1件)

こんばんは


ご質問の状況が良く分かりませんが・・
>Application.Dialogs(xlDialogPageSetup).Show
これはActiveSheetに対する設定になると思うのですが、、
For Each ws In Worksheetsで各シートに対しては
If ws.PageSetup.Orientation =を実行してもxlDialogPageSetupでの設定は反映されていないと思います。

ListView1.ListItems(k).Checked = が実行されないと言う事でしょうか?

少なくとも実行条件はPaperSize = xlPaperA4もしくはPaperSize = xlPaperA3でなくてはなりません。他の用紙サイズになっていれば実行されませんね

これは無いと思いますが、
また、他のUserformを表示してListView1.ListItems(k).Checked =ならば
ListView1を設置しているUserformを明示しなくては成らないと思います。

また、FalseとTrueを間違えているとか・・・

ステップ実行で確認すれば分かると思います。
    • good
    • 0
この回答へのお礼

こんにちは
いつもお世話になります
早速、ご回答ありがとうございます

ステップ実行で落ち着いて経過を見たところ
PageSetupはちゃんと認識してました
問題はListViewのチェックボックスの実行がされていないようでした

大変申し訳ございませんでした
適切な対応に感謝します
これからもよろしくお願い申し上げます

お礼日時:2022/02/24 10:18

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


おすすめ情報