Gizport
1 回答
0
Share (facebook)
51
view
全般

ExcelVBAコードの改善策を教えて下さい。 Intersectメ...

ExcelVBAコードの改善策を教えて下さい。
Intersectメソッドは失敗しましたエラーが時々出ます。 Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False ' 別のセルを値を設定しても割り込みが起こらないようにする
Call コード入力処理(Target)
Application.EnableEvents = True
End Sub

Sub コード入力処理(入力セル As Range)
Dim 入力コード As Variant
Dim i As Integer

If 入力セル.Count <> 1 Then Exit Sub ' 行削除や複数項目入力は未対応
If Intersect(入力セル, Range("D14:D230")) Is Nothing Then Exit Sub ' コード入力以外は未対応
入力コード = 入力セル.Value
Do

If i <> 0 Then Intersect(入力セル.Offset(i).EntireRow, Columns("D")) = 入力コード - i
Intersect(入力セル.Offset(i).EntireRow, Columns("F")) = 品名取得(入力コード - i)
Intersect(入力セル.Offset(i).EntireRow, Columns("G")) = 規格取得(入力コード - i)
Intersect(入力セル.Offset(i).EntireRow, Columns("AF")) = 備考取得(入力コード - i)

If 品名取得(入力コード - i) = "" Then Exit Do ' コードエラー(空の時も)終了
i = i + 1
If (入力コード - i) Mod 10 = 0 Then Exit Do ' 下1桁0なら処理終了
Loop
End Sub
Yahoo!知恵袋 3930日前
コメントする
お気に入り
1
質問者が選んだベストソリューション
よくは分からないですが、コードに無駄がありますね。次のようにしてみては?

Sub コード入力処理(Target As Range)
Dim rNum As Long
Dim Code As Variant

If Target.Count > 1 Then Exit Sub ' 行削除や複数項目入力は未対応
If Intersect(Target, Range("D14:D230")) Is Nothing Then Exit Sub ' コード入力以外は未対応
If Not IsNumeric(Target.Value) Then Exit Sub
rNum = Target.Row
Code = Target.Value
Do
Cells(rNum, "D").Value = Code
If 品名取得(Code) = "" Then Exit Do ' コードエラー(空の時も)終了
Cells(rNum, "F").Value = 品名取得(Code)
Cells(rNum, "G").Value = 規格取得(Code)
Cells(rNum, "AF").Value = 備考取得(Code)
rNum = rNum + 1
Code = Code - 1
Loop Until Code Mod 10 = 0 ' 下1桁0なら処理終了
End Sub
Yahoo!知恵袋 3916日前
シェア
 
コメントする
 

参考になったと評価
  このQ&Aは参考になりましたか?

Share (facebook)
その他の解決方法を知っていますか?
回答する
全般
67
Views
質問者が納得下の図のようなことでしょうか? ・A列~D列は貴殿の画像のとおりで、一部データを変えています。 ・E列とF列に、合計数値の表示された品目と合計を集約しています。 ①D2セルには貴殿の=IF(SUMIF($A$2:$A$10,C2,$B$2:$B$10)=0,"",(SUMIF($A$2:$A$10,C2,$B$2:$B$10)))の数式が入っています。 ②E2セルには=IF(COUNT(D$2:D$7)<ROW(E1),"",INDEX(C:C,SMALL(I...
3572日前view67
全般
49
Views
質問者が納得B1セルの値が時刻のシリアル値になっているためにそのように表示されてしまいます。そのためB1セルの値をTEXT関数を使って時刻の表示に変えることですね。 =A1&IF(B1="","",TEXT(B1,"h:mm"))&C1&D1 IF関数を使っているのはB1セルが空白でしたら空白にするためです。
3581日前view49
全般
62
Views
質問者が納得やめとけ ドコモで機種変更したら大損しますよ。おそらく旧料金プランでしょうから、機種変更すると新料金プランに半強制変更。料金割高になります。 旧料金プラン タブレット 3791円(プラスXi割、7GB) 新料金プラン タブレット 5500円(2GB) ドコモがタブレット2500円で使える!と盛んに宣してますが、家族の誰かが9500円以上の負担をしているから使えるだけ。2台目プラスってのもありますが、容量全く増えないのにシェアするだけで2500円かかります。 機種はどれでもいいんで白ロムで購入しましょ...
3584日前view62
全般
52
Views
質問者が納得SIMカードはキャリアからの貸与品なので本来は返却する必要があります。しかし、今後もトランスミッター機能を使いたいと言えば返さなくても良いでしょう。
3581日前view52
全般
61
Views
質問者が納得>瞬時にシャッターを切れるようにしています。 ってことは、 被写体を発見したら、それを撮影すべく、急いで設定した撮影するってことでしょうか。 前もって良い撮影場所を研究し、 電車や飛行機の時刻表を元に計算し、 じっくりと計画的に被写体と向かい合って、 じっくりと構図セッティングや撮影設定を行う・・・、 私が思うに、それの方が良い作品に近づくと思います。 あと、私なら昼間は、ISOは基本は100にしますね。足りなかったら400とかにしますけど。ISOは大きいとノイズが入りやすくなります。出来るだけ...
3595日前view61

取扱説明書・マニュアル

918view
http://www.nttdocomo.co.jp/.../F-10D_J_OP_01.pdf
173 ページ6.56 MB
もっと見る

関連製品のQ&A