![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_13.png?e8efa67)
シート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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】指定した検索条件に一致したら別シートに転記したい 2 2022/03/23 16:14
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) VBAで、シート間の転記するコードを教えてください。 4 2023/03/26 10:43
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
- Visual Basic(VBA) VBAで、シート間の転記するコードをFOR~NEXTで教えてください。 9 2023/04/30 20:04
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELのSheet番号って変更でき...
-
マクロの「SaveAs」でエラーが...
-
Unionでの他のシートの参照につ...
-
楽天RSSからエクセルVBAを使用...
-
VBA 空白行に転記する
-
Count Ifのセルの範囲指定に変...
-
VBAで変数の数/変数名を動的に...
-
アクセスからエクセルへ出力時...
-
ExcelのVBマクロを、バックグラ...
-
エクセルのVBAで条件を別シート...
-
VBA 実行時エラー1004 rangeメ...
-
マクロ実行後に別シートの残像...
-
まとめシートから集計シートへA...
-
テキストボックスから、複数の...
-
VBA Userformで一部別シートに...
-
Excel VBA オートフィルターで...
-
vba 連続するとうまく作動せず
-
GASでチェックボックスを一括of...
-
100万件越えCSVから条件を満た...
-
Excel2013で切り取り禁止
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロの「SaveAs」でエラーが...
-
VBA 空白行に転記する
-
EXCELのSheet番号って変更でき...
-
マクロ実行後に別シートの残像...
-
VBA別シートの最終行の次行へ転...
-
Count Ifのセルの範囲指定に変...
-
Changeイベントで複数セルへの...
-
VBAで変数の数/変数名を動的に...
-
VBA 別ブックからの転記の高速...
-
【VBA】特定の条件でセルをコピー
-
VBA 実行時エラー1004 rangeメ...
-
楽天RSSからエクセルVBAを使用...
-
Unionでの他のシートの参照につ...
-
複数シートの複数列に入力され...
-
ExcelのVBマクロを、バックグラ...
-
100万件越えCSVから条件を満た...
-
VBA Userformで一部別シートに...
-
Excel VBA オートフィルターで...
-
Excel2013で切り取り禁止
-
VBAでEXCELから固定長...
おすすめ情報