Excel VBA質問箱 IV

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

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


122 / 3841 ページ ←次へ | 前へ→

【80041】選択した行のセル値を入力フォームに転記...
質問  こじこじ  - 18/7/12(木) 13:04 -

引用なし
パスワード
   教えてください
選択した行のセル値(AからG)を
入力フォームの テキストボックス(Textbox1〜7)に転記したい。

行の選択をどうすれば いいでしょうか。
・ツリー全体表示

【80040】Re:皆様のお知恵をお貸しください。
発言  γ  - 18/7/10(火) 20:01 -

引用なし
パスワード
   貴方が書かれたのは達成したいこと。
それはわかっています。

〜でしょうかと書いたのは対応の仕方のつもり。
オートフィルター操作や結果のコピーペイスト操作を
マクロ記録すればヒントが得られます。
・ツリー全体表示

【80039】Re:皆様のお知恵をお貸しください。
発言  一般社会人  - 18/7/10(火) 16:25 -

引用なし
パスワード
   γ 様、ご返信ありがとうございます。


1.シート1にある、A列の1行毎にあるドロップダウンリストから担当地区を選択
(担当地区は複数ある)

2.1.で選択した担当地区をシート2にある担当一覧表から担当者を抽出


3.抽出した担当者を、シート1のD列から5列毎に整列する。


になります。

コードについてですが、大変恐縮ではございますが書けていません。
・ツリー全体表示

【80038】Re:皆様のお知恵をお貸しください。
発言  γ  - 18/7/9(月) 21:06 -

引用なし
パスワード
   (1)オートフィルタを使って、担当者を抽出
(2)それを5列ごとに整列する
ということでしょうか?
それで、どこに詰まっているのでしょうか。
出来ているところまで示していただけませんか?
・ツリー全体表示

【80037】皆様のお知恵をお貸しください。
質問  一般社会人  - 18/7/9(月) 3:16 -

引用なし
パスワード
   ドロップダウンリストから担当地区を選んだ際に、別シート(sheet2)にある
担当地区が該当するメンバーを全て表示させたいのですがどうすればよろしいでしょうか?

※該当する人を表示させる際に、5人ごとに行分割したいです。

【〇〇】:ドロップダウンリスト
[〇〇]:名前
  |  :セル


例)

  sheet1

【東京担当】|[佐藤]|[伊藤]|[高橋]|[山田]|[石井]|
      |[加藤]|[江川]| ...etc


  sheet2(こちらは行毎に情報が分かれているだけ。)

  東京地区|[佐藤]|〇〇歳 |正社員 |
  東京地区|[伊藤]|〇〇歳 |正社員 |
  東京地区|[高橋]|〇〇歳 |正社員 |
  東京地区|[山田]|〇〇歳 |正社員 |
                         ...etc


分かりにくく、大変申し訳ありませんが宜しくお願い致します。
・ツリー全体表示

【80036】Re:エクセルでのチェックボックス判定
お礼  サンソン E-MAIL  - 18/7/7(土) 18:28 -

引用なし
パスワード
   ▼亀マスター さん:
>作成したチェックボックスはActiveXコントロールでしょうか?
>もしフォームコントロールだと値の取得方法が違いますよ。
>フォームコントロールの場合、
>
>?Activesheet.Shapes("チェックボックス名").DrawingObject.Value
>
>で取得でき、チェックボックスがオンなら1、オフなら-4146が返ります。


皆様

ご教授ありがとうございます!
どうもそもそも論としてチェックボックス名を間違ていたようで、無事出来ました!
ありがとうございました!
・ツリー全体表示

【80035】Re:エクセルでのチェックボックス判定
回答  亀マスター  - 18/7/7(土) 15:25 -

引用なし
パスワード
   作成したチェックボックスはActiveXコントロールでしょうか?
もしフォームコントロールだと値の取得方法が違いますよ。
フォームコントロールの場合、

?Activesheet.Shapes("チェックボックス名").DrawingObject.Value

で取得でき、チェックボックスがオンなら1、オフなら-4146が返ります。
・ツリー全体表示

【80034】Re:エクセルでのチェックボックス判定
発言  Jaka  - 18/7/7(土) 15:24 -

引用なし
パスワード
   Worksheets("Sheet1").OLEObjects("CheckBox1").Object.Value = True

??
・ツリー全体表示

【80033】エクセルでのチェックボックス判定
質問  サンソン E-MAIL  - 18/7/7(土) 12:52 -

引用なし
パスワード
   いつもお世話になっております。

VBAで
「チェックボックスにチェックが入っているか」
を知りたいのです。。。

仮で下記を作ってみたのですが、全く動かず困っております。

Sub チェックボックス確認()

If ActiveSheet.CheckBox1.Value = True Then
MsgBox "〇"
Else
MsgBox "×"
End If

End Sub

どなたかお知恵を貸していただけないでしょうか。。。
・ツリー全体表示

【80032】Re:ユーザーフォームのコマンドボタン
お礼  ACE  - 18/7/3(火) 11:24 -

引用なし
パスワード
   ▼よろずやさん

返信ありがとうございます。

希望通りのものが出来ました。
丁寧な説明ありがとうございました。

また、宜しくお願い致します。
・ツリー全体表示

【80031】Re:ユーザーフォームのコマンドボタン
回答  よろずや  - 18/7/3(火) 10:59 -

引用なし
パスワード
   >呼び出し元のところは、何を入力すれば良いのでしょうか?

複数のボタンでこのマクロを呼び出すと、
UserForm1.呼び出し元 = Application.Caller
でボタンの名前が入ります。

ユーザーフォームのOKボタンで
MsgBox 呼び出し元
でボタンの名前が表示されます。
で、処理1、処理2、処理3は、ボタンの名前に応じて切り替えられるということです。
MsgBox の代わりに

Select Case 呼び出し元
  Case ボタン1
    処理1
  Case ボタン2
    処理2
というように...
・ツリー全体表示

【80030】Re:ユーザーフォームのコマンドボタン
質問  ACE  - 18/7/3(火) 10:11 -

引用なし
パスワード
   ▼よろずやさん

返信ありがとうございます。
呼び出し元のところは、何を入力すれば良いのでしょうか?
・ツリー全体表示

【80029】Re:ユーザーフォームのコマンドボタン
回答  よろずや  - 18/7/2(月) 17:48 -

引用なし
パスワード
   標準モジュールに
Option Explicit
Sub 角丸四角形_Click()
  Load UserForm1
  UserForm1.呼び出し元 = Application.Caller
  UserForm1.Show vbModal
  Unload UserForm1
  Set UserForm1 = Nothing
End Sub

ユーザーフォームに
Option Explicit
Public 呼び出し元 As String
Private Sub CancelButton_Click()
  Me.Hide
End Sub
Private Sub OKButton_Click()
  MsgBox 呼び出し元
End Sub

なんてね。
・ツリー全体表示

【80028】ユーザーフォームのコマンドボタン
質問  ACE  - 18/7/2(月) 15:22 -

引用なし
パスワード
   シート上にオートシェイプ1から3を配置しています。
ユーザーフォームにコマンドボタンでOKとキャンセルを配置しています。

オートシェイプ1をクリックするとユーザーフォームを呼出
ユーザーフォーム上のOKを押すと処理1
キャンセルを押すとユーザーフォームを閉じる。

オートシェイプ2をクリックすると同じユーザーフォームを呼出
ユーザーフォーム上のOKを押すと処理2
キャンセルを押すとユーザーフォームを閉じる。

オートシェイプ3をクリックすると同じユーザーフォームを呼出
ユーザーフォーム上のOKを押すと処理3
キャンセルを押すとユーザーフォームを閉じる。

OKの処理をクリックしたオートシェイプによって
処理を変えるにはどうすれば良いのでしょうか?
・ツリー全体表示

【80027】Re:オプションボタンのコードの簡略化を...
お礼  703  - 18/7/1(日) 11:25 -

引用なし
パスワード
   ご回答ありがとうございました。
シートの方に書くことは初めてだったため、大変勉強になりました。
頂いたコードを元に改めて考えて、エラーなく動かすことができました。
大変ありがとうございました。
・ツリー全体表示

【80026】Re:オプションボタンのコードの簡略化を...
お礼  703  - 18/7/1(日) 11:23 -

引用なし
パスワード
   ご回答ありがとうございます。
仰る通り3の場合です。分かりづらい質問ですいませんでした。
頂いたコードを元に再度見直してみたところ
無事エラーなく動きました。
大変ありがとうございました。
・ツリー全体表示

【80025】Re:オプションボタンのコードの簡略化を...
回答  hatena  - 18/6/30(土) 2:53 -

引用なし
パスワード
   3.の場合だとすると、下記のコードでどうしょう。

Private Sub CommandButton1_Click()
  Dim i As Long, j As Long
  Dim rngOutput As Range, wsInput As Worksheet
  Dim a As Long

  Set wsInput = Worksheets("アンケート項目")
  Set rngOutput = Worksheets("シートA").Range("投入範囲")
  a = rngOutput.Rows.Count
  rngOutput.Rows(a).Insert Shift:=xlDown
  rngOutput.Cells(a, 1).Value = Me.TextBox1
  
  For i = 1 To 17
    With Me.Controls("Frame" & i)
    For j = 0 To .Controls.Count - 1
      If .Controls(j).Value Then
        rngOutput.Cells(a, i + 1).Value = wsInout.Cells(j + 3, i + 2)
      End If
    Next
    End With
  Next
End Sub
・ツリー全体表示

【80024】Re:オプションボタンのコードの簡略化を...
回答  hatena  - 18/6/30(土) 1:45 -

引用なし
パスワード
   ▼703 さん:
>アンケートの集計フォームをつくっています。
>アンケートの設問がQ1~Q17まであり、各設問に答えがA1~A10またはA1~A20ほどあります。

>240個のオプションボタンがあり、チェックがついたら、そのオプションボタンに対応したセルの値を、別のシートのセルに投入していく(積上げていく)作業を繰り返し行いたいです。

オプションボタンといってもいろいろあります。
下記のどれでしょうか。

1.ワークシート上に、フォームコントロールのグループボックスとオプションボタンを配置した。

2.ワークシート上に Active X のオプションボタンを配置した。

3.ユーザーフォーム上に、フレームを配置して、その上にオプションボタンを配置した。

提示のコードから推測すると 3.だと思いますが、どうですか。
・ツリー全体表示

【80023】Re:オプションボタンのコードの簡略化を...
発言  γ  - 18/6/29(金) 18:45 -

引用なし
パスワード
   いいんじゃないですか?
動きませんか?
・ツリー全体表示

【80022】Re:オプションボタンのコードの簡略化を...
質問  703  - 18/6/29(金) 9:07 -

引用なし
パスワード
   γ さん ご回答ありがとうございます。

今までシートモジュールに書いたことがなく
重ねての質問になってしまい申し訳ないのですが、

vbaの画面で投入シートを右クリックし、コードの表示を押し

そこに
Private Sub CommandButton2_Click()

Dim a As Integer
a = Worksheets("シートA").Range("投入範囲").Rows.Count
Worksheets("シートA").Range("投入範囲").Rows(a).Insert Shift:=xlDown
Worksheets("シートA").Range("投入範囲").Cells(a, 1).Value = TextBox1

Sub test()
  Dim ws As Worksheet
  Dim rng As Range
  Dim j  As Long
  Dim jj As Long
  Dim k  As Long
  Dim ruiseki As Long
  Dim p  As Long
  Dim ary As Variant
  
  Set rng = Worksheets("シートA").Range("投入範囲")
  Set ws = Worksheets("アンケート項目")
  
  'オプションの数
  ary = Array(10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20)
  
  For k = 1 To 17
    For j = 1 To ary(k - 1)
      jj = ruiseki + j
      If Me.OLEObjects("OptionButton" & jj).Object.Value = True Then
        rng.Cells(a, k + 1).Value = ws.Cells(j + 2, k + 1)
        ' Exit For
      End If
    Next
    ruiseki = ruiseki + ary(k - 1)
  Next
End Sub

を入力する形でよいのでしょうか。
・ツリー全体表示

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