[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『印刷エラー』(エクセルおじさん)
以下のコードで印刷を行っていますが、チェックボックスを追加すると エラーとなります。 エラー回避の方法を教示願います。
Private Sub CommandButton2_Click()
Dim i As Long, couni As Long With Worksheets("台紙") '印刷するシート名 For i = 0 To Me.Controls.Count - 1 If TypeName(Me.Controls(i)) = "CheckBox" Then If Me.Controls("CheckBox" & i + 1).Value = True Then
If (couni Mod 2) <> 0 Then .Range("a6").Value = Me.Controls("CheckBox" & i + 1).Caption Else .Range("a6").Value = Me.Controls("CheckBox" & i + 1).Caption Me.Hide ActiveWindow.SelectedSheets.PrintOut Copies:=1 .Range("a6").ClearContents End If End If End If Next i If (couni Mod 2) <> 0 Then Me.Hide ActiveWindow.SelectedSheets.PrintOut Copies:=1 .Range("a6").ClearContents End If End With Unload Me
End Sub
尚、エラーは、 If Me.Controls("CheckBox" & i + 1).Value = True Then
で発生します。 今後、チェックボックスを10個程追加の予定です。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
γさんへ
早々の対応有難うございます。 エラーは、「指定されたオブジェクトは見つかりません」です。 宜しくお願いします。
(エクセルおじさん) 2015/05/23(土) 11:45
http://officetanaka.net/excel/vba/tips/tips44.htm
(マナ) 2015/05/23(土) 11:48
マナさんへ
参考にさせて頂いてますが、 私の技量では難しい状態です。 現在、印刷終了後にエラー表示です。 (エクセルおじさん) 2015/05/23(土) 12:49
Private Sub CommandButton2_Click() Dim c As Control
With Worksheets("台紙") '印刷するシート名 For Each c In Controls If TypeName(c) = "CheckBox" Then If c.Value = True Then .Range("a6").Value = c.Caption .PrintOut End If End If Next .Range("a6").ClearContents End With Unload Me
End Sub
(マナ) 2015/05/23(土) 13:54
マナさんへ
思う通りに出来ました。 有難うございます。 済みませんが、後、1つ同様な内容をお伺いさせて下さい。
以下のコードで異常はなかったのですが、チェックボックスを 追加したら同様なエラーとなります。 対象せるが2つ(a6,a8)になった場合はどうなるでしょか。 Private Sub CommandButton1_Click()
Dim i As Long, couni As Long
With Worksheets("台紙") '印刷するシート名 For i = 0 To Me.Controls.Count - 1 If TypeName(Me.Controls(i)) = "CheckBox" Then If Me.Controls("CheckBox" & i + 1).Value = True Then 'ここでエラー couni = couni + 1 If (couni Mod 2) <> 0 Then .Range("a6").Value = Me.Controls("CheckBox" & i + 1).Caption Else .Range("a8").Value = Me.Controls("CheckBox" & i + 1).Caption Me.Hide ActiveWindow.SelectedSheets.PrintOut Copies:=1 .Range("a6,a8").ClearContents End If End If End If Next i If (couni Mod 2) <> 0 Then Me.Hide ActiveWindow.SelectedSheets.PrintOut Copies:=1 .Range("a6,a8").ClearContents End If End With Unload Me
End Sub (エクセルおじさん) 2015/05/23(土) 14:22
Private Sub CommandButton1_Click() Dim c As Control Dim v Dim n As String
v = Array("CheckBox11", "CheckBox5", "CheckBox7") '★a6に転記するものを列挙
With Worksheets("台紙") '印刷するシート名 For Each c In Controls If TypeName(c) = "CheckBox" Then If c.Value = True Then n = c.Caption If IsNumeric(Application.Match(n, v, 0)) Then .Range("a6").Value = n Else .Range("a8").Value = n End If .PrintOut .Range("a6,a8").ClearContents End If End If Next End With Unload Me
End Sub
(マナ) 2015/05/23(土) 15:41 修正15:57 また修正20:01
(マナ) 2015/05/23(土) 15:59
If IsNumeric(Application.Match(n, v, 0)) Then .Range("a6").Value = n Else .Range("a8").Value = n End If
(マナ) 2015/05/23(土) 20:03
マナさんへ
ご教示誠に有難うございます。 現在、移動中で閲覧させて頂きました。 コードの試行は、明日になるかと思います。 a6とa8の区別の件ですが、 チェックボックスを23個設定しています。その中から 選択したチェックボックスのCaptionをa6とa8に入れて印刷することです。
例1: CheckBox1,CheckBox3,CheckBox6,CheckBox10,を選択した場合 a6に CheckBox1 a8にCheckBox3のCaptionを表示して印刷 次に a6に CheckBox6 a8にCheckBox10のCaptionを表示して印刷する。
例2: CheckBox2,CheckBox3,CheckBox11,CheckBox20,,CheckBox23を選択した場合 a6に CheckBox2 a8にCheckBox3のCaptionを表示して印刷 次に a6に CheckBox11 a8にCheckBox20のCaptionを表示して印刷 次に a6に CheckBox23を表示して印刷する。 以上が目的としている動作です。
(エクセルおじさん) 2015/05/23(土) 22:44
今のコードの Controls("CheckBox" & i + 1) を Controls(i) にするだけでもよかったです。
Private Sub CommandButton1_Click() Dim c As Control Dim flg As Boolean Dim n As String
With Worksheets("台紙") '印刷するシート名 For Each c In Controls If TypeName(c) = "CheckBox" Then If c.Value = True Then n = c.Caption If flg = False Then .Range("a6").Value = n flg = True Else .Range("a8").Value = n .PrintOut .Range("a6,a8").ClearContents flg = False End If End If End If Next If flg = True Then .PrintOut .Range("a6").ClearContents End If End With Unload Me
End Sub
(マナ) 2015/05/23(土) 23:41
マナさんへ
只今、試行してみました。 目的としていた動作となりました。 誠に有難うございます。 今後、コードを読み解き 技量向上に努めたいと思います。 (エクセルおじさん) 2015/05/24(日) 05:06
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.