Excel VBA質問箱 IV

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

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


10683 / 76734 ←次へ | 前へ→

【71597】Re:コンボボックスを使って値を取得します
発言  ichinose  - 12/3/22(木) 6:49 -

引用なし
パスワード
   ▼VBA初心者 さん:
おはようございます。
>次のような処理がしたいのですが、うまく動きません
いくら初心者でもユーザーフォームの基本的な動作は
学ばなければ動くものも動きませんよ!!

>2.特定のシートをコピーし、取得した値+日付をシートネームとする
↑一言で言うと、やりたいことはこれですね!!

これを実現する材料として、ユーザーフォームにコンボボックスを
貼り付けてある、ということですね!!

>Private Sub UserForm_Initialize()
このプロシジャーは、ユーザーフォームの初期設定を行う
プロシジャーです。

コンボボックスの選択メンバを登録するのは、良いですが、
まだ、ユーザーが何もしていないのに
シートをコピーするコードが記述されていますが、これいかに?
(もっとも sheetnameには何も入っていないので何もしませんが)

まず、仕様を明確しましょう。コードなんかその後です。

まず、ユーザーフォーム(UserForm1)に配置するコントロールは、コンボボックスだけですか?

>取得した値+日付をシートネームとする
取得した値というのは、コンボボックスで選択したデータのことですね!!
日付を InputBox("作成日を入力して下さい") で取得しているようですが、
このユーザーフォーム上にテキストボックスを配置して、日付入力をしてもらう方が
簡単ですよね?
よって、ユーザーフォーム上にテキストボックスを配置してください
(TextBox1)。


品種の選択を行い、テキストボックスに日付を入力し、
ユーザーフォーム上にあるコマンドボタンをクリックしたら、
入力されたデータを基に

>特定のシートをコピーし、取得した値+日付をシートネームとする

これを行えば良いですね

ということで ユーザーフォーム上にコマンドボタンも配置してください
(CommandButton1)


1 品種リストの作成
  品種と言うデータをコンボボックスで選択させるのですが、
  この品種データをコードの中に直接

  myData(0, 0) = "25RF 80mA"

  このように設定していますが、これだと
  品種が増えたり、減ったり、内容に変更があったりする度に
  プログラムコードを修正しなければなりませんよね?
  データの増減などでは、プログラムを触らなくても良いような
  つくりにしなければなりません。

  品種リストを適当なワークシートを作成し、
  そこに作成するようにします。
  例
  シート名 品種リスト

     A
  1 品種
  2 25RF 80mA
  3 23RR 25mA
   ・
   ・
 
  一行目は、データではなく、項目名にてください。
  Excelでは、そのようにしておく方が何かと便利ですから・・・・。

  このように品種のデータをシートに配置しておけば・・・、

Private Sub UserForm_Initialize()
  Dim rng As Range
  With Worksheets("品種リスト")
    Set rng = .Range("a2", .Cells(.Rows.Count, "a").End(xlUp))
  End With
  If rng.Row > 1 Then
    With ComboBox1
     .Clear
     .Style = fmStyleDropDownList
     .List = rng.Value
    End With
  End If
End Sub

こんなコードでコンボボックスに選択メンバを登録できます。

まずは、コンボボックスに選択できる品種を登録するところまで
正常に作動するようにしてみください。

7 hits

【71593】コンボボックスを使って値を取得します VBA初心者 12/3/21(水) 18:51 質問
【71597】Re:コンボボックスを使って値を取得します ichinose 12/3/22(木) 6:49 発言
【71603】Re:コンボボックスを使って値を取得します VBA初心者 12/3/22(木) 21:00 質問
【71614】Re:コンボボックスを使って値を取得します ichinose 12/3/23(金) 6:39 発言
【71666】Re:コンボボックスを使って値を取得します VBA初心者 12/3/25(日) 14:41 お礼

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