[[20240119144744]] 『チェックボックス』(おおおおお) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『チェックボックス』(おおおおお)

チェックボックスにチェックがあるものだけを出力ボタンをおすと別シートに必要データーが転記されるようにしたいのですが、なかなか上手くいきません。
A、C、E列にチェックボックスB、D、F列に名前グループごとに名前を分けており、名前だけを抽出したいのですが、とび列の抽出方法が分かりません。

抽出先は別シートのC列21.27.33.39.45.51.57.63.69です。

丸投げですいません。

< 使用 Excel:unknown、使用 OS:unknown >


チェックボックスは2種類ありますけどはっきりさせてください。
転記前のデータを示してください。
< 使用 Excel:unknown、使用 OS:unknown >も記入してください。

(IT) 2024/01/19(金) 16:04:39


チェックボックスはフォームコントロールから作成したものです。

グループ1 グループ2 グループ3
A列 B列  C列 D列  E列 F列
✓ 名前  ✓ 名前  ✓ 名前
  名前    名前    名前
  名前    名前    名前
✓ 名前  ✓ 名前  ✓ 名前
こんな感じの表です
これのチェックのある名前だけを名簿に転記したいです。

(おおおおお) 2024/01/19(金) 16:16:47


 >抽出先は別シートのC列21.27.33.39.45.51.57.63.69です。
 で↑の表との関連性はどうなっているんですか。

(IT) 2024/01/19(金) 16:33:41
 


 >チェックボックスはフォームコントロールから作成したものです。
 各チェックボックスのリンクセルは設定されているものとします。
 Trueのチェックボックスのひとつ右のセルの値を、
 別シートのC21から6行毎に書き込みます。
 ※アクティブシートの全てのチェックボックスが対象です。

    Sub test()
        Dim shp As CheckBox, n&
        n = 21
        For Each shp In ActiveSheet.CheckBoxes
            If Range(shp.LinkedCell) Then
                Worksheets("別シート").Cells(n, "C") = Range(shp.LinkedCell).Offset(, 1)
                n = n + 6
            End If
        Next
    End Sub
(辰) 2024/01/20(土) 09:58:28

抽出先は別シートのC列21.27.33.39.45.51.57.63.69です。
 で↑の表との関連性はどうなっているんですか。
(IT) 2024/01/19(金) 16:33:41

選択した名前で名簿を作成したく、
複数列の名前を1列かつ指定行に順番に転記
転記先は
D19フリガナ
D21名前
D25フリガナ
D27名前
D31フリガナ
D33名前
  ↓
D67フリガナ
D69名前    と続いています。
"名前"の部分に文字が入れば後は連動するようになっています。

Excelは2013 OSはWindows10です

(おおおおお) 2024/01/22(月) 14:28:07


 意味の確認です。				

 >選択した名前で名簿を作成したく				

 この条件の確認です。				
 下の表がSheet1として				

    |[A]      |[B]|[C]      |[D]|[E]      |[F]				
 [1]|グループ1|名前|グループ2|名前|グループ3|名前   				
 [2]|TRUE     |〇1 |FALSE    |△1 |FALSE    |▲1				
 [3]|FALSE    |〇2 |TRUE     |△2 |FALSE    |▲2				
 [4]|FALSE    |〇3 |FALSE    |△3 |TRUE     |▲3				
 [5]|TRUE     |〇4 |FALSE    |△4 |FALSE    |▲4				
 [6]|FALSE    |〇5 |TRUE     |△5 |TRUE     |▲5				

 〇△▲は、名前です

 TRUEは、✓がある 、FALSEは、無し状態が
 上のレイアウトの意味です。

 別シートへ下記のように並べたいと言う事もある				
 ようは、順不同になるようにしたいですか?				

 21行目	△2			
 27行目	▲3			
 33行目	〇4			
 39行目	▲5			
 45行目	〇1			
 51行目	△5			

 Sheet1 の縦列の名前が				
 固定人数ならできます。				

 毎月変動するようだと、マクロの変数が可変に				
 なるので、それに合うように数値(変数)を				
 調整すれば可能ですかね。				

 であれば、Sheet1の列が何行目迄				
 名前が入っているか教えてください。				

(あみな) 2024/01/22(月) 15:35:53


 条件がもう一つあります。

 Sheet1 を、作成しなおさないと
 いけなくなっても良いかです。

 どういう意味かといいますと、
 既にあるチェックボックスと

 その他のコントロールボタンには
 名前が入っているのでそれを削除
 すると、次にチェックボックスを
 作成してしまうと、名前が変更されるのです。

 名前定義で既存のチェックボックスを手動で
 変更もできますが人数が多いと、手間になります。

 あと、各チェックボックスに
 マクロを仕込むので登録をしなければ
 いけないので、これをマクロで一括で作成します。

 なので、チェックボックスを一括で
 作成するマクロを作り、順不同に対応できるように
 仕込みますって事です。

(あみな) 2024/01/22(月) 15:51:19


 辰さんのマクロに反応が無いようなので、残念。 補足説明してみます。

 (1)チェックボックスの"リンクセル"を、チェックボックスのあるセルに設定します。
 (2)True,Falseが邪魔になるので、フォントを白にしておくとよいでしょう。
 (3)testマクロを実行すると(ボタンかなにかに登録しておくとよいかも)、
    リンクセルの右の名前を別シートに転記してくれます。
 (4)もちろん、各チェックボックスに、testマクロを登録してもよいかもしれまえせん。
    ただし、すべてのチェックが終わっていない段階で名前を転記しても無駄かもしれないので、
     (3)のように一括して処理する方法がよいかもしれません。

 なお、名前の列挙の順番については次のとおりです。
 チェックボックスを作成した順番で、For each ... Nextの走査が行われるので、
 A列を上から下に作成、次にC列、次にE列と作成してあれば問題ないです。
 そうでない場合は、名前の順序が狂うかもしれません。           
(xyz) 2024/01/22(月) 17:52:51

 >xyzさん
 補足説明ありがとうございました。

 私の回答では、(1),(2)について言及しておらず、
 振り返ると不親切だったように思いましたので、
 ご説明いただいた事、大変恐縮です。

 名前の列挙順については、完全に失念しておりました。
 サンプル作成時、A列上部に作ったチェックボックスをフィルダウン後、
 各列へコピーしたため、期せずしてご説明通りの挙動になっており、
 恥ずかしながら全く気付いていなかったのが実情です。

 >おおおおおさん
 力及ばず、お力になれず、すみませんでした。
 名前の選択順も含め、あみなさんからのご提案で解決へ向かうかと思います。
 ぜひ、問い掛けにお答えされることをお勧めいたします。
(辰) 2024/01/22(月) 20:35:21

辰さんすみません!
ご提案いただいたのに返信もせず…。
辰さんのサンプルをコピーさせていただき、私の力不足でああでもないこうでもないとやりながら
ほかの方のアドバイスもお聞きしようと返信してしまいました…。
気を悪くしてしまいすみませんでした。
ありがとうございました。
xyzさん、あみなさん
明日また挑戦してみます。ありがとうございます。
(おおおおお) 2024/01/22(月) 22:07:20

 >おおおおおさん
 気を悪くなどしていませんので、どうかお気になさらず。

 もしリンクセルの設定が良くわからなかったということでしたら、
 フォームコントロールから配置したチェックボックスを右クリックし、
 コントロールの書式設定>コントロールタブ>リンクするセルに任意のセルアドレス
 とすることで設定することができます。

 以下のマクロを利用し、シート内の全てのチェックボックスのリンクセルを設定することも可能ですが、
 既に配置してあるチェックボックスの左上隅が狙ったセルからはみ出している場合、
 正しいセルにリンクすることができない可能性がありましたので、
 「各チェックボックスのリンクセルは設定されているものとします。」とした次第です。
 ※一緒に文字色も白色にします。

    Sub linked_Cell()
        Dim shp As CheckBox
        For Each shp In ActiveSheet.CheckBoxes
            With shp.TopLeftCell
                shp.LinkedCell = .Address
                .Font.Color = rgbWhite
            End With
        Next
    End Sub
(辰) 2024/01/23(火) 08:14:59

できました!!!ご協力いただいた皆さんありがとうございました!!
(9999) 2024/01/23(火) 11:31:20

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.