Excel VBA質問箱 IV

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

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


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

【11713】ユーザフォームで ぴぴ 04/3/15(月) 11:43 質問
【11714】Re:ユーザフォームで IROC 04/3/15(月) 11:52 回答
【11716】Re:ユーザフォームで Jaka 04/3/15(月) 12:10 回答
【11718】Re:ユーザフォームで Asaki 04/3/15(月) 12:50 回答
【11721】Re:ユーザフォームで ぴぴ 04/3/15(月) 13:09 お礼

【11713】ユーザフォームで
質問  ぴぴ  - 04/3/15(月) 11:43 -

引用なし
パスワード
   ユーザフォームで
ListBox1で取得した名前(x)と同じシートが
あるかないかを検索し、あった場合は
シート(x)へListBox1より下のTextBox1.TextBox2の値を
シート(x)の最終行の空白セルを探し
A列へTextBox1をB列へTextBox2を転記するようにしたいのですが
どのようなコードにすればよいのでしょうか?

もし(x)シート名がなかった場合は、
基本シートをコピーし、
シート名を(x)に変更するようにしました。

【11714】Re:ユーザフォームで
回答  IROC  - 04/3/15(月) 11:52 -

引用なし
パスワード
   dim i as long
for i = 1 to worksheets.count

 if worksheets(i).name=ListBox1.text then
   msgbox "あります。"
 Else
   msgbox "ないです"
 end if
next i

シートも有無の判断方法です。

【11716】Re:ユーザフォームで
回答  Jaka  - 04/3/15(月) 12:10 -

引用なし
パスワード
   こんにちは。

フラグ使った方が良いと思います。、
見つかるまで毎回 "ないです"と出るのがうっとうしく無いですか?

Dim i As Long, Flg As Boolean
For i = 1 To Worksheets.Count
 If Worksheets(i).Name = ListBox1.Text Then
   Flg = True
   Exit For
 End If
Next
If Flg = True Then
  MsgBox "ある"
Else
  MsgBox "無い"
End If

【11718】Re:ユーザフォームで
回答  Asaki  - 04/3/15(月) 12:50 -

引用なし
パスワード
   こんにちは。

全部あわせて、↓こんなイメージでしょうか?

Sub test()

  Dim sh     As Worksheet

On Error Resume Next
  Set sh = Worksheets(ListBox1.Text)
On Error GoTo 0
  'ないとき
  If sh Is Nothing Then
    Worksheets("Sheet1").Copy After:=Worksheets(Worksheets.Count)
    Set sh = ActiveSheet
    sh.Name = ListBox1.Text
    sh.Cells(1, 1).Value = TextBox1.Value
    sh.Cells(1, 2).Value = TextBox2.Value

  'あるとき
  Else
    With sh.Cells(65536, 1).End(xlUp).Offset(1)
      .Value = TextBox1.Value
      .Offset(, 1).Value = TextBox2.Value
    End With
  End If
  Set sh = Nothing

End Sub

【11721】Re:ユーザフォームで
お礼  ぴぴ  - 04/3/15(月) 13:09 -

引用なし
パスワード
   すごいです。
完璧に出来ました。ありがとうございました♪

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