[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『印刷エラー』(エクセルおじさん)
以下のコードで印刷を行っていますが、チェックボックスを追加すると エラーとなります。 エラー回避の方法を教示願います。
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.