Excel VBA質問箱 IV

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

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


2166 / 13645 ツリー ←次へ | 前へ→

【69579】excel vbaでの繰り返し処理の仕方について コヅカ 11/8/4(木) 12:45 質問[未読]
【69592】Re:excel vbaでの繰り返し処理の仕方につい... ichinose 11/8/5(金) 8:32 発言[未読]

【69579】excel vbaでの繰り返し処理の仕方について
質問  コヅカ  - 11/8/4(木) 12:45 -

引用なし
パスワード
   はじめまして。
当方、エクセルで見積ツールを作成しているものですが以下の様に、
コンボボックスにある値を選んだ時、例えば、comboboxの値はワークシート上にあるテーブルからRowSorceで呼び出しています。
RowSorceの一行目(ListIndex=0 Then)にそのRowSorceの参照元のワークシートのセルを選択することは可能でしょうか?
できれば、参照元のセルを選択してoffcetでその範囲のセルの内容を取得して、
見積フォーム上にコピーしたいのですが。

繰り返し処理に関しては65535ある為、セルの値、ListIndex1値が違ってきますが似たような処理が65535まであります。
ご教授ください。

以下の内容を繰り返し65535分記述するのはめんどくさく、ありえないんじゃないかなと思いまして....。


'品名ボックスの1番目を選択時の処理

    If hinmei_box1.ListIndex = 0 Then
      
      If s1.Value = IsNumeric(123) Then
      
        '品名書き込み
        Range("A14:C14").Value = hinmei_box1.Value
        '仕様・規格書き込み(テーブルから参照)
        Sheet2.Select
        Range("L3").Select
          Selection.Copy
            Sheet1.Select
              Range("D14:H14").Select
                Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
                  SkipBlanks:=False, Transpose:=False

【69592】Re:excel vbaでの繰り返し処理の仕方につ...
発言  ichinose  - 11/8/5(金) 8:32 -

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


>当方、エクセルで見積ツールを作成しているものですが以下の様に、
>コンボボックスにある値を選んだ時、例えば、comboboxの値はワークシート上にあるテーブルからRowSorceで呼び出しています。
>RowSorceの一行目(ListIndex=0 Then)にそのRowSorceの参照元のワークシートのセルを選択することは可能でしょうか?
RowSorceの中身及び、各セルの内容を具体的に提示した方がよいです。
その例題を基にコードが作成できるでしょう?
Excelのマニュアルだって、機能を実行する例が記述されているものとないものでは
わかりやすさは段違いですよね!!
ここに質問を記述するということは、仕様書をわりやすく記述する
一番の練習問題になります!!

新規ブックにて(Sheet1というシートは存在する とします)。


ユーザーフォームを一つ作成してください(UserForm1)。
コボボックスとコマンドボタンを一つずつ作成してください
(ComboBox1とCommandButton1)。
Userform1のモジュールに

'=====================================================
Option Explicit
Private Sub CommandButton1_Click()
  Dim src As String
  Dim idx As Long
  With ComboBox1
    src = .RowSource
    If .ListIndex >= 0 Then
     idx = .ListIndex + 1
     With Application
       .Goto .Range(src).Cells(idx)
     End With
    End If
  End With
End Sub
Private Sub UserForm_Initialize()
  With ComboBox1
    .ListStyle = fmListStylePlain
    .RowSource = "sheet1!a1:a5"
  End With
End Sub

標準モジュールに

Option Explicit
Sub sample1()
  With Worksheets("Sheet1")
    .Select
    .Range("a1:a5").Formula = "=char(64+row())"
  End With
  msgbox "A1:A5がコンボボックスのメンバーになります"
  UserForm1.Show
End Sub

これでsample1を実行してください。
コンボボックスのメンバ表示後、Userform1が表示されます。

コボボックスでA〜Eを選択後、コマンドボタンをクリックしてください。
選択した値があるセルが選択されます。

これを応用してください

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