[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『チェックボックス』(タナ)
いつもこちらで勉強させて頂いております。 現在つまっている所がございますので教えて頂けないでしょうか。 BOOK1のSheet1に製品発注の詳細が記載されているのですが それを発注書に転記したいです。 ただBOOK1のSheet1には製品の情報が入っており、部品の発注先が違う為 チェックボックスにチェックを入れたもの以外は転記しません。 また、部品の色の展開があるのでCheckBox12〜15までにチェックを入れて 入れた箇所により発注書の行欄を開けたいのですが… 下記の様に組んでも何も反応致しません…ご教授願いたいです。
Dim MyRow As Long, MyCol As Long Dim i As Long Dim c As Long Dim e As Long Dim d As Long
If CheckBox12.Value = True Then i = "0" End If
If CheckBox13.Value = True Then i = "1" End If
If CheckBox14.Value = True Then i = "2" End If
If CheckBox14.Value = True Then i = "3" End If
With Worksheets("sheet1")'これは発注書の方のSheet1です。OPENメゾットは手前で記載しておりますので省略しております
d = .Range("D65536").End(xlUp).Row + 1 + i For e = 1 To 11 If CheckBox & e = Value Then For c = 18 To 28 .Cells(d, 4).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 2).Value .Cells(d, 7).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 4).Value .Cells(d, 11).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 6).Value .Cells(d, 13).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 10).Value .Cells(d, 14).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 18).Value Next c
End If
Next e
End With
何処がおかしいのでしょうか?? Excel2003 OS:XP
i は整数型ですから、 i = "0" ではなく i = 0 ですね。
If CheckBox & e = Value Then は意味不明です。
それからインデントをきちんとつけましょう
本論と関係ありませんが、メゾット ではなくメソッド(Method)です。 まだまだ問題はありそうですが、まずは構文的なエラーがなくなる状態にして はどうでしょうか。
On Error Resume Next を使っているとしたら、デバッグの段階では邪魔です。 (Mook)
Mook様 ありがとうございます。 チェックボックスのループ処理は出来ないのでしょうか If CheckBox & e = Value Thenは1から11までのチェックボックスの処理をしたく思ったので…トホホ >メゾット ではなくメソッド(Method)です。 ご指摘ありがとうございます。恥をかき続ける所でした… iは整数型と言う事はi=0 i=1 ...として行けば良いと言う事でしょうか?? またまた質問ばかりで申し訳ございません。
やりたいことは何となく分かりました。 チェックボックスにアクセスするには、単純な文字列ではできません。 For chNum=11 To 15 If Worksheets("チェックボックスのあるシート名").OLEObjects("CheckBox" & chNum).Object.Value = True Then For ... ... Netx End If Next のようにする必要があります。
また、 For c = 18 To 28 .Cells(d, 4).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 2).Value .Cells(d, 7).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 4).Value .Cells(d, 11).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 6).Value .Cells(d, 13).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 10).Value .Cells(d, 14).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(c, 18).Value Next c は、毎回同じところに書いているので、ループの意味がありません。
まずは、コピー元のデータとチェックボックスの関係をもう少し、説明されては どうでしょうか (Mook)
>毎回同じところに書いているので、ループの意味がありません。
確かに…チェックボックスにチェックが入っている行の各列(2、4、6、10、18)を
発注書に転記したいのですがその場合は
If Worksheets("チェックボックスのあるシート名").OLEObjects("CheckBox" & chNum).Object.Value = True Then .Cells(d, 4).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(ChNum+17, 2).Value .Cells(d, 7).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(ChNum+17, 4).Value .Cells(d, 11).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(ChNum+17, 6).Value .Cells(d, 13).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(ChNum+17, 10).Value .Cells(d, 14).Value = Workbooks("生産システム-1").Sheets("製品フォーム").Cells(ChNum+17, 18).Value
End If Next
この様な形になりますか??
何度もスミマセン…
もうすでに見ていないかもしれませんが、下記のあたりが参考にならないでしょうか。
この手のことはまず間違いなく前例があるので、検索キーワードさえうまく選べ ば例がたくさん見つかると思います。 (Mook)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.