
No.4ベストアンサー
- 回答日時:
こんにちは。
試しに、以下のようなコードを書いてみました。
シートのセルの参照はないようにしました。
22P ~2つずと増え48Pまでだとします。
今は、デフォルト状態のままです。
'//
Private Sub SpinButton1_Change()
With SpinButton1
.SmallChange = 2
.Max = 48
.Min = 22
End With
ComboBox1.Value = SpinButton1.Value & "P"
End Sub
Private Sub UserForm_Initialize()
Dim j As Long
Dim i As Long
Dim Ar()
ReDim Ar((48 - 22) \ 2) '配列数式
For i = 22 To 48 Step 2
Ar(j) = i & "P"
j = j + 1
Next
ComboBox1.RowSource = ""
ComboBox1.List = Ar
End Sub

こんばんは。
お手数おかけしまして、大変ご迷惑おかけした上、素晴らしいご回答をいただきとてもとても感謝しております。
思っていた通りに動作できました。
ありがとうございました。
No.3
- 回答日時:
「文字列(数字+アルファベットの規則正しい順番)なので値を加減するのは不可能なのではと思い」
具体的にはどういうことなのでしょうか?
「スピンボタンを置きCH3〜16までコンボボックス、スピンボタンどちらでも変更(選択したセルから上下)できるのでしょうか?」
私の書いたコードで出来ていないのですか? 3行目~16行目までですから、仮に戻ったとしても、スピンボタンはMinを-2までに設定するしかありません。質問どおりのはずです。
しかし、こちらの示した案が、ダメ出しされたのに、その具体例がが示されていないのでは、答えようがありません。
(A)
① ②
1A 3A
2A 4A
3A 5A
4A 6A
(B)
① ②
1A
2A
3A 3A
4A 4A
5A 5A
6A 6A
ということでしょうか。
そもそも、ComboBox で、RowSource を決めてあるのでは、ワークシートのセルに存在するものしか、参照することはできません。①も②も、セル上にあるものだけです。
値自体を上下する--セル上には存在しない値なら、最初からコードの書き方が違います。どういうようにしたいのか、示してくださらないと、こちらでは分かりません。
ただ、現実的には、スピンボタンでその都度値を変えていくのなら、ComboBox で表示の値を変えることは、MultiSelect でない限りは、あまり意味がないと思います。スピンボタンで、もしくは、スピンボタンにラベル表示で処理できるはずです。
No.2
- 回答日時:
ずいぶん、難しい使い方をするのですね。
ベテランの人でも、そんな難しい方法は思いつかないです。
なぜなら、ComboBox の値は、UserForm起動後は、中身そのものは変化させないからです。
お話をまとめると
-------------------
第一前提
sheet1のユーザーフォームにコンボボックス(rowsourseCH3:CH16)
第二前提
VBA コンボボックスの値をスピンボタンで変更する
--------------------
まず、前提の0段階で、
Private Sub UserForm_Initialize()
Worksheets("Sheet1").Select
End Sub
としているとします。
----------------------
'//
Private Sub SpinButton1_Change()
Dim i As Long
i = SpinButton1.Value
ComboBox1.RowSource = Range("CH3:CH16").Offset(i).Address
End Sub
'//
'スピンボタンは、この場合は、基本的には、マイナス値を取らないとした場合、
'このようにすれば、値を替えられます。
>CH3の値から動きませんでした。
一般的にはそのとおりです。つまり、スピンボタンは、Min の値が、0からですから。この中身自体の値を変えようとすれば、第一前提の部分がちがっています。RowSource で指定することが間違いだからです。もう少し、考えをまとめていただけたら、また違うアイデアが生まれてくるかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで指定したセルの増減ボタンを作りたい 2 2022/12/02 11:03
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Visual Basic(VBA) ExcelVBA ドロップボックスで月を選択するとそれ以降のデータが残るようにしたい。 3 2022/12/16 14:53
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) Excel コンボボックス バックカラー 1 2023/02/18 08:06
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) VB.net 1 2022/08/18 19:21
- Ruby power BI クエリエディター 〇〇を含む文字列置換 1 2022/10/16 17:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
フォームを開くときに、コンボ...
-
数字の位ごとの値を表示するプ...
-
Excel-vba 文字列と変数を...
-
VB6.0-整数と余りを求める
-
データ構造のmapとは?
-
【C++/CLI】コンボボックスの値...
-
ジャバスクリプトでのことです...
-
世界のナベアツ
-
乱数の初期化について
-
DataGridView 複数行同時変更...
-
jsp~jspにhiddenを使って変数...
-
数値を浮動小数点32bitHEXコー...
-
抽出印刷マクロ
-
VBAでダブルコーテーション入り...
-
stdpicture型の変数に、、
-
excelの、ある数式内の{}の意...
-
EXCEL/VBA 変数の値をクリップ...
-
Windows11のカメラで動画を撮り...
-
2進数→10進数への変換 また...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
数字の位ごとの値を表示するプ...
-
VB6.0-整数と余りを求める
-
足して100になるような乱数のア...
-
ラジオボタンの値の取得につい...
-
C#で動的にコントロールを取得...
-
VBAで配列のNULL判定
-
データ構造のmapとは?
-
関数で複数の値を戻り値として...
-
世界のナベアツ
-
VBA コンボボックスの値をスピ...
-
VBAの定数の使い方で、計算値を...
-
スピンボタンで小数点
-
1つ前の値を変数に保存する方法
-
Nullってどういう意味ですか?
-
コンボボックスの名前を変数に...
-
DWORDって
-
vbaで極大値を抽出する方法
おすすめ情報
回答ありがとうございます。
知識が無くコードもどう打ち込んだらいいかわかりません。色々しらべましたがなかなかうまくいきませんでした。
御回答ありがとうございます。
知識が少ない為、思いついたのはcomboboxとspinbottonの二通りでどうにかならないかと思いました。
comboboxでは無く、textboxなら値を自由自在に操る事は可能なのでしょうが、なぜなら変更したい中身は、文字列(数字+アルファベットの規則正しい順番)なので値を加減するのは不可能なのではと思い、このような質問を挙げさせてもらいました。勉強になります。
御回答ありがとうございます。示してくださったコードで出来ております。
言葉足らずとお礼を申し上げる事が無くまた知識不足で、ご不快にさせてしまい誠に申し訳ありません。
私の知識の範囲と手段で述べますと、プロパティでcomboboxからrowsourseを指示しないと表記できません。コードを細かく指示できる知識がほとんどできません。
また文字列は、22Pから始まり2ずつ増え48Pまであります。
何度もお手数おかけし大変申し訳ありません。