|
スレッド61292で以前質問させて頂いた内容に、新たな修正を加えたく、
ご質問させて頂きます。
修正する度に行数が変わるエクセルシートを印刷するため、
改ページ位置をその都度指定して印刷できるよう、
ユーザーフォームで改ページの指定を促すようにしました。
下記のように教えて頂き、上手く作動しています。
'標準モジュール
Sub insatsu()
Dim gyo As Long
Dim Ws As Excel.Worksheet
Dim HPBreak As Excel.HPageBreak
Set Ws = ActiveSheet
gyo = 50
ActiveSheet.DisplayPageBreaks = True
UserForm1.Show vbModeless
End Sub
' Userformモジュール
Private Sub CommandButton1_Click()
' 行追加処理 ...
End Sub
上記の「行追加処理」以外にも、別プロシージャで、
罫線を引く処理や印刷処理などを行っています。
シートによって罫線位置やタイトル範囲が違うので変数に入れるように
したのですが、同じような変数(gyoやTitleAreaなど)が何度も出てくるので、
まとめようとしてグローバル変数を宣言するべく、使い方を検索していましたら、
グローバル変数の弊害について書かれており、極力避けるようにとのことでした。
そのサイトで推奨されていたのは、ユーザー定義型でしたので、
下記のように宣言し、引数渡しをするよう設定いたしましたが、
call insatsu(MyShokichi As Shokichi)によって呼び出される
UserForm1のclickイベントには上手く引数を渡すことができません。
あちこち調べましたが、わかりませんでしたので、
どなたかご教示お願いいたします。
Type Shokichi
TitleArea As Range
TitleGyo As Integer
gyo As Integer
MaxRetsu as Integer
・
・
End Type
Sub settei()
Dim MyShokichi As Shokichi
Dim Ws As Excel.Worksheet
Dim HPBreak As Excel.HPageBreak
Set Ws = ActiveSheet
Set MyShokichi.TitleArea = '範囲
Set MyShokichi.TitleGyo = '数値
・
・
call insatsu(MyShokichi As Shokichi)
end sub
|
|