Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9811 / 13644 ツリー ←次へ | 前へ→

【25341】登録ボタンを作りたいのですが。。。 kumata 05/5/29(日) 2:52 質問[未読]
【25346】Re:登録ボタンを作りたいのですが。。。 ponpon 05/5/29(日) 9:29 回答[未読]
【25350】Re:登録ボタンを作りたいのですが。。。 だるま 05/5/29(日) 10:39 回答[未読]
【25353】Re:登録ボタンを作りたいのですが。。。 kumata 05/5/29(日) 11:38 お礼[未読]
【25351】Re:登録ボタンを作りたいのですが。。。 kumata 05/5/29(日) 11:27 質問[未読]
【25354】Re:登録ボタンを作りたいのですが。。。 kumata 05/5/29(日) 11:39 お礼[未読]

【25341】登録ボタンを作りたいのですが。。。
質問  kumata  - 05/5/29(日) 2:52 -

引用なし
パスワード
   下記のようなマクロを作りました。
しかしながら、応答なしになってしまいます。
以前はできたように思ったのですが
何が悪いのでしょうか?
よろしくお願い致します。


Private Sub CommandButton1_Click()
  Dim bk As Workbook
  Dim sh1 As Worksheet
  Dim sh2 As Worksheet
  Dim cnt1 As Long

Set bk = ThisWorkbook

Set sh1 = bk.Worksheets("現場登録検索")
Set sh2 = bk.Worksheets("一覧")
cnt1 = 6

  Do While sh2.Cells(cnt1, 2).Value <> ""
  cnt = cnt1 + 1
  Loop

'得意先CD
sh2.Cells(cnt1, 2).Value = sh1.Cells(2, 3).Value

'現場CD
sh2.Cells(cnt1, 3).Value = sh1.Cells(3, 3).Value

'送り方
sh2.Cells(cnt1, 22).Value = sh1.Cells(4, 3).Value

'封筒
sh2.Cells(cnt1, 23).Value = sh1.Cells(5, 3).Value


MsgBox "登録できました。"

End Sub

【25346】Re:登録ボタンを作りたいのですが。。。
回答  ponpon  - 05/5/29(日) 9:29 -

引用なし
パスワード
   おはようございます。

>  Do While sh2.Cells(cnt1, 2).Value <> ""
>  cnt = cnt1 + 1
>  Loop
では、cnt1だけが、回ってしまいます。
それと、cnt 「1」が抜けています。

Private Sub CommandButton1_Click()
  Dim bk As Workbook
  Dim sh1 As Worksheet
  Dim sh2 As Worksheet
  Dim cnt1 As Long

  Set bk = ThisWorkbook

  Set sh1 = bk.Worksheets("現場登録検索")
  Set sh2 = bk.Worksheets("一覧")
  cnt1 = 6
  With sh2
   Do While .Cells(cnt1, 2).Value <> ""
  
    '得意先CD
    .Cells(cnt1, 2).Value = sh1.Cells(2, 3).Value

    '現場CD
    .Cells(cnt1, 3).Value = sh1.Cells(3, 3).Value

    '送り方
    .Cells(cnt1, 22).Value = sh1.Cells(4, 3).Value

    '封筒
    .Cells(cnt1, 23).Value = sh1.Cells(5, 3).Value
   
    cnt1 = cnt1 + 1
   
   Loop
  End With

  MsgBox "登録できました。"

End Sub

で意図したように動くと思います。

【25350】Re:登録ボタンを作りたいのですが。。。
回答  だるま WEB  - 05/5/29(日) 10:39 -

引用なし
パスワード
   VBE画面で,[ツール]-[オプション]、「変数の宣言を強制する」にチェックを入れておき

Option Explicit

がモジュール先頭に自動で挿入されるようにしておくことをお勧めします。
そうしておけば今回のようなケースはすぐにコンパイルエラーでミスが発見できます。
^d^

【25351】Re:登録ボタンを作りたいのですが。。。
質問  kumata  - 05/5/29(日) 11:27 -

引用なし
パスワード
   ▼ponpon さん:さっそくのご返答ありがとうございます。
使わせて頂きましたが、現在入力済の得意先CD、現場CDがすべて同じものにコピーされたように変更されてしまいました。

登録画面から、一覧表に、入力されていない行に登録していくものがつくりたかったいのです。

どうしてすべて同じものにかわってしまったのでしょうか?

【25353】Re:登録ボタンを作りたいのですが。。。
お礼  kumata  - 05/5/29(日) 11:38 -

引用なし
パスワード
   ▼だるま さん:
>VBE画面で,[ツール]-[オプション]、「変数の宣言を強制する」にチェックを入れておき
>
>Option Explicit
>
>がモジュール先頭に自動で挿入されるようにしておくことをお勧めします。
>そうしておけば今回のようなケースはすぐにコンパイルエラーでミスが発見できます。
>^d^

ありがとうございます。
さっそくやりました。

【25354】Re:登録ボタンを作りたいのですが。。。
お礼  kumata  - 05/5/29(日) 11:39 -

引用なし
パスワード
   ▼ponpon さん:
ありがとうございました。
登録無事にできました。
Loopのするところが違ってました。

9811 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free