シート1には、
「番号・名前・種類」が書かれている表があります。
上記の項目は、B2から横にC2,D2と書かれていて
それぞれの内容は、2行目から下に書かれています。
そして、A列にチャックボックスがあります。
シート2には、「番号・名前・種類」の項目だけが書かれていて
内容は空欄の表があります。
シート1のチェックボックスをチェック✓した行のみ
シート2に出力したいです。
C言語をただいま勉強中で、いきなりVBAの話を振られて困っています。
どなたかご教示ください。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんにちは
チェックボックスはセルとは独立しているので、順序も行とは関係がありませんし、位置関係から割り出すのも少々面倒です。
処理しやすい方法として、チェックボックスにはセルにリンクする機能がありますので、その行のE列(他の列でも良い)などにリンクさせておいて、E列がチェックされている(=True)の行だけを順に転記してゆくというのが簡単だと思います。
とは言っても、位置関係から割り出しても、さほどのことではないので。
以下は、「フォームコントロール」のチェックボックスをシートに配置してある場合の例です。
ですので、「アクティブX」のチェックボックスは拾いません。
チェックボックスがアクティブXのものだったり混在していたりする場合も、基本的には同様の方法で処理することができるはずです。
Sub Sample()
Dim cb As Object, c As Range, u As Range
Dim x As Single, y As Single
Const s1 = "Sheet1"
Const s2 = "Sheet2"
With Worksheets(s1)
x = .Columns(1).Width
For Each cb In .CheckBoxes
If cb.Value = 1 And cb.Left < x Then
Set c = cb.TopLeftCell
y = cb.Top + cb.Height / 2
While y > c.Top + c.Height
Set c = c.Offset(1)
Wend
If u Is Nothing Then Set u = c Else Set u = Union(u, c)
End If
Next cb
If Not u Is Nothing Then Set u = Intersect(.Columns("B:D"), u.EntireRow)
End With
With Worksheets(s2)
.UsedRange.Offset(1).ClearContents
If Not u Is Nothing Then u.Copy Destination:=.Range("A2")
End With
End Sub
No.1
- 回答日時:
C言語は上級者言語です
私はエンジニアという仕事柄、ほぼ毎日C言語と戯れていますがまだまだだと自覚しています。
対してVBAは初心者用言語です
正直誰でも出来るレベルの言語です
1日教材と睨めっこすれば
ある程度マスターできると思います
チェックボックスは、チェックボックスの状態を取得するライブラリがあります
そちらを使用し、条件分岐して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
最近、いつ泣きましたか?
泣いてストレス発散! なんて言いますよね。 あなたは最近いつ、どんなシチュエーションで泣きましたか?
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
メモのコツを教えてください!
メモを取るのが苦手です。 急いでメモすると内容がごちゃごちゃになってしまったり、ひどいときには全く読めない時もあります。
-
【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
【お題】 ・買ったばかりの自転車を分解してひと言
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
Excel チェックボックスで条件付き書式「複数のチェックボックスのリンクセルを一度に設定したい」
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 空白行に転記する
-
マクロの「SaveAs」でエラーが...
-
EXCELのSheet番号って変更でき...
-
Count Ifのセルの範囲指定に変...
-
アクセスからエクセルへ出力時...
-
VBA別シートの最終行の次行へ転...
-
マクロ実行後に別シートの残像...
-
FindNextがうまくいかない
-
VBAで変数の数/変数名を動的に...
-
Unionでの他のシートの参照につ...
-
VBA 別ブックからの転記の高速...
-
VBA 実行時エラー1004 rangeメ...
-
複数シートの複数列に入力され...
-
RemoveDuplicatesメソッドにつ...
-
ExcelのVBマクロを、バックグラ...
-
VBA webクエリをループさせる...
-
Excel VBA オートフィルターで...
-
vba 住所で判断して担当支店に...
-
GASでチェックボックスを一括of...
-
100万件越えCSVから条件を満た...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
VBA 実行時エラー1004 rangeメ...
-
Count Ifのセルの範囲指定に変...
-
Changeイベントで複数セルへの...
-
VBA別シートの最終行の次行へ転...
-
ExcelのVBマクロを、バックグラ...
-
VBA 別ブックからの転記の高速...
-
【VBA】特定の条件でセルをコピー
-
100万件越えCSVから条件を満た...
-
楽天RSSからエクセルVBAを使用...
-
VBAで変数の数/変数名を動的に...
-
Excel2013で切り取り禁止
-
FindNextがうまくいかない
-
Excel VBA オートフィルターで...
-
Unionでの他のシートの参照につ...
-
グラフマクロで系列を変数にす...
-
複数シートの複数列に入力され...
おすすめ情報