Excel VBA質問箱 IV

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

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


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

【4860】ボタン&コンボボックス cat 03/4/10(木) 18:03 質問
【4870】Re:ボタン&コンボボックス Jaka 03/4/11(金) 12:32 発言
【4875】Re:ボタン&コンボボックス cat 03/4/11(金) 17:31 質問
【4925】Re:ボタン&コンボボックス つん 03/4/14(月) 9:49 発言
【4931】Re:ボタン&コンボボックス cat 03/4/14(月) 15:12 発言
【4937】Re:ボタン&コンボボックス Jaka 03/4/14(月) 17:45 回答
【4938】消すのをわすれていました。 Jaka 03/4/14(月) 17:54 回答
【4951】質問 cat 03/4/15(火) 11:11 質問
【4955】Re:質問 Jaka 03/4/15(火) 12:48 回答
【4957】Re:質問 cat 03/4/15(火) 14:21 発言
【4959】Re:質問 Jaka 03/4/15(火) 15:38 回答
【4960】Re:質問 cat 03/4/15(火) 16:49 お礼

【4860】ボタン&コンボボックス
質問  cat  - 03/4/10(木) 18:03 -

引用なし
パスワード
   あるセルの行に数値がいくつか並んでいる状態で、
ボタンを押したらコンボボックスが表示されて
選択したものが並んでいる数値の最後まで並べたいとき
はどのようにマクロを書けばよいのでしょうか?

もう1つ、毎回マウスで選んだセルのところから
コンボボックスで選んだのを並べたいときは
どうすればよいでしょうか?

教えてください。

【4870】Re:ボタン&コンボボックス
発言  Jaka  - 03/4/11(金) 12:32 -

引用なし
パスワード
   こんにちは。
単純にボタンやコンボボックスといっても、色々あります。
どこのボタンを押すのか、また、「コンボボックスが表示されて」と言う事ですが、コンボボックスその物をVBAで作成すると言う事なのでしょうか?
どこに作成したいのでしょうか?
シート上だったら、フォーム、コントロールなどがあります。

もう少し具体的に説明された方が、回答を得られやすいと思います。

【4875】Re:ボタン&コンボボックス
質問  cat  - 03/4/11(金) 17:31 -

引用なし
パスワード
   説明が薄かったです。
コマンドボタンでそれを押したらフォームのコンボボックスが表示されて
その中から指定した番号を選び、あるセル列に並べてある数値の
ところまで選んだ数値をその隣のセルの列に並べたいのですが
どのようにすればよいのでしょか?

【4925】Re:ボタン&コンボボックス
発言  つん E-MAIL  - 03/4/14(月) 9:49 -

引用なし
パスワード
   Jakaさん、catさんおはようございます。
横から失礼します

catさん
>説明が薄かったです。
んー、まだ薄いようです(^^;

>コマンドボタンでそれを押したらフォームのコンボボックスが表示されて
>その中から指定した番号を選び、あるセル列に並べてある数値の
>ところまで選んだ数値をその隣のセルの列に並べたいのですが
>どのようにすればよいのでしょか?

1.シート上に配置しているコマンドボタンを押す。
2.ユーザーフォームが表示され、その上にコンボボックスが
  配置されてある。
3.コンボボックスには、数値がリストされている。
 (それはどんな数値がリストされてるんですか?
  別のシートからデータをとってきているのですか?
  それとも、ユーザーフォームのロード時に、AddItemで
  リストしてるんかな?)
4.そのコンボボックスから一つの数値を選択する。
5.あるセル列(例えばA列として)A列にデータがあって、
  そのデータの末尾にコンボボックスから選択した数値を加える。

ということでしょうか?
「隣のセルの列」ということやから、ちょっと違うかなー?

【4931】Re:ボタン&コンボボックス
発言  cat  - 03/4/14(月) 15:12 -

引用なし
パスワード
   >1.シート上に配置しているコマンドボタンを押す。
>2.ユーザーフォームが表示され、その上にコンボボックスが
>  配置されてある。
>3.コンボボックスには、数値がリストされている。
> (それはどんな数値がリストされてるんですか?
>  別のシートからデータをとってきているのですか?
>  それとも、ユーザーフォームのロード時に、AddItemで
>  リストしてるんかな?)

この数値は単純に例えば1〜20といったように入れておくものです。

>4.そのコンボボックスから一つの数値を選択する。
>5.あるセル列(例えばA列として)A列にデータがあって、
>  そのデータの末尾にコンボボックスから選択した数値を加える。

A列にデータがあったら末尾ではなく隣(B列)といった感じです。
そして、データがある分だけ数値を並べたいと考えてます。

【4937】Re:ボタン&コンボボックス
回答  Jaka  - 03/4/14(月) 17:45 -

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

まだ良く解りません。
ユーザーフォーム上に作るのかな?

昨日書いた物なので、質問の意図と違っていると思います。
シート上に作るのなら参考になれば....。

Sub コンボ作成()
  Dim CombB As Object, damiycomb As Object
  
  If Selection.Columns.Count <> 1 Then
    MsgBox "1列以上は、不可。"
    End
  End If
  
  On Error Resume Next
  Set damiycomb = ActiveSheet.Shapes("コンボ1").OLEFormat.Object
  If Err = 0 Then
    ActiveSheet.Shapes("コンボ1").OLEFormat.Object.Visible = True
    'End
  Else
    '                  横位置 縦位置 幅 高
    Set CombB = ActiveSheet.DropDowns.Add(323.25, 27, 80, 15) '.Select
    CombB.Name = "コンボ1"
  End If
  Err.Clear
  On Error GoTo 0
  
  With ActiveSheet.Shapes("コンボ1").OLEFormat.Object '.Value = xlOn
    .Placement = xlFreeFloating
    .ListFillRange = Selection.Address
    .ListIndex = 0
    .LinkedCell = ""
    .Display3DShading = False
    .OnAction = "コンボデータ"
  End With
  Set CombB = Nothing
End Sub

Sub コンボデータ()
  With ActiveSheet.Shapes("コンボ1").OLEFormat.Object
    MsgBox .List(.ListIndex)
  End With
End Sub

【4938】消すのをわすれていました。
回答  Jaka  - 03/4/14(月) 17:54 -

引用なし
パスワード
   消すと言っても実際には消していませんが..。
非表示にしただけ。

sub 消す()
  On Error Resume Next
  Set damiycomb = ActiveSheet.Shapes("コンボ1").OLEFormat.Object
  If Err = 0 Then
    ActiveSheet.Shapes("コンボ1").OLEFormat.Object.Visible = false
    'End
  Else
end sub

【4951】質問
質問  cat  - 03/4/15(火) 11:11 -

引用なし
パスワード
   いろいろとありがとうございます。

最終的にはコマンドボタンを押してユーザーホームに
1〜20のように決められた数値を選ぶコンボボックス
を作り、それをある列に並んでいる(数値など)分だけ隣の列に
選択した数値を並べたいと考えています。

そして、OKボタンをユーザーホーム上に作り
それを押したらユーザーホームが消えるようにしたいと思います。

この方法を教えて頂きたいと思います。

【4955】Re:質問
回答  Jaka  - 03/4/15(火) 12:48 -

引用なし
パスワード
   こんにちは。
こう言うことなんでしょうか?

Private Sub ComboBox1_Change()
  Selection.Offset(, 1).Resize(, ComboBox1.Value) = ComboBox1.Value
End Sub

Private Sub CommandButton1_Click()
  Unload Me
  End
End Sub

Private Sub UserForm_Initialize()
  For i = 1 To 20
    ComboBox1.AddItem i
  Next
End Sub

【4957】Re:質問
発言  cat  - 03/4/15(火) 14:21 -

引用なし
パスワード
   こんにちは
だんだん考えていたようになってきました。

教えて頂いたのでやるとセルを選んだ隣しか入力されないので
決められたセル(G5など)以下縦にその隣に縦に並んでいる数値分
表示させる方法を教えてもらいたいと思います。
元々ある数値  選んだ数値
   1     5
   2     5
   3     5
   4     5 ←このようにです。

お願いします。

【4959】Re:質問
回答  Jaka  - 03/4/15(火) 15:38 -

引用なし
パスワード
   まだ良く理解できてないんだけど。
G5以下、空白に成るまでとしました。(数字と限っていません。)
こんなんでいいのかなぁ?

Range(Range("G5"), Range("G5").End(xlDown)).Offset(, 1).Value = ComboBox1.Value


これと同じ事で良かったら、手動でG5の右(H5)に5をいれ、H5を選択してH5セルの右下の角にポインタを合わせ、ポンタが+に変わった所をWクリックすると同じような事ができます。

【4960】Re:質問
お礼  cat  - 03/4/15(火) 16:49 -

引用なし
パスワード
   ありがとうです。
考えていたようにできました。

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