
ユーザーフォームからそれぞれのシートに入力するものです。
シート4は単価表になっており
シート2、3は納入先会社になります。
検索値(key)が完全一致でのみ 単価を自動入力できるようにしました。
使用者がわかりやすいよう、後から入力する該当セルを色付にしてあります。
また、目盛線を非表示にして
シート2、3のみ条件付書式でA列~T列まで該当列に罫線が入るようにしました。
初心者な為、書籍などいろいろ調べてVBAを書いたのですが
登録ボタンをおしてからシートへ反映されるまでや、直接入力でも
深呼吸してからでないと反映されません。
どこを改善したら早くなるのかさっぱりわからないので
どなたか教えてください!
よろしくお願いします。
Private Sub cmb登録_Click()
Dim tbl As Variant, i As Integer, h As Integer, key As Variant, ret As Variant
Application.ScreenUpdating = False
Application.Calculation = xlManual
Application.EnableEvents = False
tbl = Worksheets(4).Range("A1:E700")
key = Cbx品名.Value & Cbxカラー.Value & Txtサイズ.Text
On Error GoTo ErrHandl
ret = WorksheetFunction.VLookup(key, tbl, 5, False)
If (Txt納入先2.Text = "糸守") Then
Worksheets(2).Activate
h = Cells(Rows.Count, 1).End(xlUp).Row
i = h + 1
With Worksheets(2)
.Cells(i, 10).Interior.Color = RGB(204, 255, 204)
.Cells(i, 11).Interior.Color = RGB(204, 255, 204)
.Cells(i, 17).Interior.Color = RGB(204, 255, 204)
.Cells(i, 18).Interior.Color = RGB(204, 255, 204)
End With
ElseIf (Txt納入先2.Text = "御神体") Then
Worksheets(3).Activate
h = Cells(Rows.Count, 1).End(xlUp).Row
i = h + 1
With Worksheets(3)
.Cells(i, 10).Interior.Color = RGB(204, 255, 255)
.Cells(i, 11).Interior.Color = RGB(204, 255, 255)
.Cells(i, 17).Interior.Color = RGB(204, 255, 255)
.Cells(i, 18).Interior.Color = RGB(204, 255, 255)
End With
End If
Cells(i, 1).Value = TxtDate.Text
Cells(i, 2).Value = Txt納入先.Text
Cells(i, 3).Value = Txt納入先2.Text
Cells(i, 4).Value = Cbx品名.Value
Cells(i, 5).Value = Cbxカラー.Value
Cells(i, 6).Value = Txtサイズ.Text
Cells(i, 7).Value = Txt長さ.Text
Cells(i, 8).Value = Txt留め具.Text
Cells(i, 9).Value = Txt本数.Text
Cells(i, 12).Value = ret
Cells(i, 14).Value = Txt通知番号.Text
Cells(i, 15).Value = Txt納品日.Text
Cells(i, 16).Value = Txt時間.Text
Cells(i, 19).Value = Txt備考1.Text
Cells(i, 20).Value = Txt備考2.Text
Cells(2, 13).Copy Cells(i, 13)
Application.Calculation = xlAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Visible = True
Exit Sub
Exit Sub
ErrHandl:
MsgBox "単価表に該当がありません。"
End Sub
No.1ベストアンサー
- 回答日時:
「cmb登録_Click」自体に遅くなるようなロジックは無いようなので、次の事を疑ってみて下さい。
①ワークシート上に設定されている数式(ワークシート関数)が遅い。
②ワークシートにWorksheet_Changeイベントプロシジャが書かれていて、それが遅い。
試しに、Application.Calculation = xlAutomatic の前にMsgboxを入れて、次の時間を確認してみて下さい。
①ボタンのクリック~メッセージボックス表示までの時間
②メッセ―ボックス閉じる~次の入力ができるようになるまでの時間
たぶん、②の方で深呼吸ができると思います。
遅いのは、VBAのせいだと思っていましたが、違ったみたいで条件付き書式設定をなくしたら、早くなりました。
助言頂きありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) vbaを早くしたい 5 2022/09/09 10:58
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで入力→日付を自動判別...
-
EXCELでシートごとの合計を一つ...
-
VBAを利用しオートフィルタで日...
-
エクセルのワークシートが重く...
-
エクセル マクロを使って日々...
-
エクセルVBAで
-
エクセルについて質問です 日付...
-
Excel 複数のシートからグラフ...
-
Excelの中央値の複数条件について
-
エクセルVBA:表の内容を担当者...
-
VBAのoffsetの動き方について教...
-
Excel ハイパーリンク先のセル...
-
エクセル 毎日更新する表のデ...
-
ピボットテーブルから抽出デー...
-
Excelでバイナリデータを読み込...
-
Excelで数値→文字列変換で指数...
-
Excelの関数について、特定の文...
-
エクセルにおける、グラフの指...
-
Excelで行ごとコピー、同じ行を...
-
日付が1年以内になると他のセル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのワークシートが重く...
-
ExcelVBAで、指定したシートに...
-
エクセルで入力シートから別シ...
-
VBA セルの値と同じ名前のシー...
-
IF, ISNUMBER, INDIRECTの組み...
-
Excelの中央値の複数条件について
-
エクセルで入力→日付を自動判別...
-
Excel ハイパーリンク先のセル...
-
エクセルVBA:表の内容を担当者...
-
【Excel】VLOOKUP関数で複数の...
-
エクセル マクロを使って日々...
-
指定した日付の範囲内でデータ...
-
エクセルについて質問です 日付...
-
エクセルにて別シートの値を参...
-
エクセル:複数シートのデータ...
-
EXCEL VBA 一致しないデータの...
-
エクセル 毎日更新する表のデ...
-
エクセル シフト勤務表から、...
-
VBAのoffsetの動き方について教...
-
Excel 複数のシートからグラフ...
おすすめ情報