
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
こんにちは
簡単に作成してみようと思ったら、前段階がちょっとやっかいでした。
チェックボックスをリンクさせたセルの変更はシートのイベントで取得できないようなので、チェックボックスのクリックを個々に取得する必要があるようです。
処理そのものは共通のコードで可能なのですが、入り口をチェックボックスの数だけ作成しなければならないので
Sub チェック1_Click()
call checkbox_click(2)
End Sub
のようにして、対象行等を引数にして共通処理のマクロを呼び出せば良いことになります。
一方で、チェックボックスの数だけイベント処理のコードが必要になるので、数が大量にある場合には面倒そうに思います。
他の方法として、一定時間ごとにチェックして変化の有無を調べるというのもないことはないですが、無駄な処理が多くなるので、あまり良い方法とは思えません。
勝手ながら少し内容を変えて、行のダブルクリックで、似たような機能になるようにしてみましたので、ご参考まで。
A列にチェックボックスが並んでいるとして、B列にクリックした順序が数字で表示されるものと仮定しています。
添付図のA列はチェックボックスのように見えますが、実はただの枠線表示あるだけで、チェックマークはセルへ文字列”✔”をマクロから記入することで、チェックボックス的な動作を実現しています。
(面倒でないなら、上記で示したチェックボックス+マクロの方法でもきちんとできます)
テストのために、たくさんのイベント処理を記したくなかったので、この方式でテストしました。
シートのイベント処理に・・・
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range
Dim i As Long, rw As Long
If Target.Column = 1 Then
Set rng = Range("B:B")
If Target.Value = "" Then
Target.Value = WorksheetFunction.Unichar(10004)
Target.Offset(0, 1).Value = WorksheetFunction.Count(rng) + 1
Else
Target.Value = ""
Target.Offset(0, 1).Value = ""
For i = 1 To WorksheetFunction.Count(rng)
rw = WorksheetFunction.Match(WorksheetFunction.Small(rng, i), rng, 0)
Cells(rw, 2).Value = i
Next i
End If
Cancel = True
End If
End Sub
として試してみました。
ただし、Unichar(10004)は✔の文字を表していますが、環境依存文字なので適切なものに変える必要があるでしょう。
他の方の指摘にあるようにチェックを外した際に連番でなくなる可能性があるので、外した場合は詰めて再度附番するようにしてあります。
ただし、番号の間に後から割り込ませたい場合には、少々操作テクニックが必要になってきます。
(「少数点以下の数字で一旦指定しておいて、空いているところをチェック→チェックを外す」ことで連番に変更されることを利用して割り込ませることが可能です)
※ 質問者様の実際の環境やセルの位置関係もわかりませんので、ご参考にでもなれば…

No.3
- 回答日時:
> なんとかカウントアップの方法ないものでしょうか
初期値1で、最後に入力した順番をどこかのセルに記録しといて、その値を加算して更新とか。
印刷順序の番号振られてる範囲での最大値を持ってきて、チェックされた行に最大値+1を追加していくとか。
で、出来なくは無いと思います。
が、
チェックしたけど間違えたのでチェック外したらどうするの?
よく見たら1番目を抜かしてたら、全部チェック外して再度チェックしなきゃならない?
とかって操作性を考慮すると、使いにくいです。
なので、一般的には例に出したようなインターフェースが利用されます。
No.2
- 回答日時:
もう1回クリックしてチェックを外したらどうするの?
質問のようにリストの順番指定するのに向いたユーザーインターフェースではないのでは。
Excelだとリボンを右クリック、「リボンのユーザー設定」みたいな、リストボックスとチェックボックス、項目を「上へ」「下へ」変更するボタンなんか使うのが一般的です。
OE でメールの表示項目を設定 - パソコントラブルQ&A
http://www.724685.com/weekly/qa050622.htm
No.1
- 回答日時:
シート データベースのA列に
チェックを入れた番号があるとして
別シートに
A B
1
2
3
・・・
と連番を入れた列を準備
B列には
=Index(データベース!B:B,Match(A2,データベース!A:A))
みたいにして関数で順番に探し出す。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでチェックボックスにチェックを入れる 1 2022/09/14 00:52
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Access(アクセス) Accessで予定表を作成しようとしてます。 テーブル フィールド名 連番 オートナンバー型 年月日 2 2023/07/23 11:40
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Visual Basic(VBA) エクセルでフォームのチェックボックスを使用した日付表示切替を作りたい 3 2023/07/11 10:47
- Excel(エクセル) エクセルの散布図で新たに入力した値のデータラベルが空欄になる現象 1 2022/04/26 09:31
- その他(Microsoft Office) (至急)Googleのスプレッドシートの条件付き書式について 2 2022/09/11 08:50
- Visual Basic(VBA) VBAで、1つのエクセルで、2つのシートからもう1つのシートに条件のある転記コードを教えてください。 1 2023/03/16 18:07
- Visual Basic(VBA) エクセルVBAについて 2 2023/01/31 16:21
- Visual Basic(VBA) 【VBA】データを入力後に,同一シート内に履歴として転記するVBAコードを教えていただきたいです。 3 2022/11/16 01:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル マクロで数値が変っ...
-
エクセル 上下で列幅を変えるには
-
excel 小さすぎて見えないセル...
-
EXCELで最後の行を固定
-
Excelのフィルター後の一番上の...
-
Excelで○をクリックのみでつけたい
-
エクセルVBA 最終行を選んで並...
-
結合されたセルをプルダウンの...
-
[EXCEL]ボタン押す→時刻が表に...
-
エクセルのマクロでゴールシー...
-
EXCEL 「最後のセル」のリセット
-
Excelで結合されたセルの間に列...
-
エクセルで特定の文字列が入っ...
-
Excel グラフのプロットからデ...
-
AのセルとB行を比較して、一致...
-
エクセル 時間の表示形式AM/PM...
-
excelで特定のセルだけ結合でき...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定の文字がある行以外を削除...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセル 上下で列幅を変えるには
-
[EXCEL]ボタン押す→時刻が表に...
-
Excelのフィルター後の一番上の...
-
エクセルで特定の文字列が入っ...
-
excelのデータで色つき行の抽出...
-
エクセル マクロで数値が変っ...
-
Excel グラフのプロットからデ...
-
結合されたセルをプルダウンの...
-
エクセル マクロ オートフィ...
-
excel 小さすぎて見えないセル...
-
Excel ウインドウ枠の固定をす...
-
EXCELで最後の行を固定
-
電話番号の入力方式が違うデー...
-
エクセルVBA 最終行を選んで並...
-
エクセルのセルに指定画像(.jpg...
-
エクセル 時間の表示形式AM/PM...
-
連続データが入った行の一番右...
-
Excelで非表示のセルをとばして...
おすすめ情報
ご回答ありがとうございます
データベースのシート1と印刷シート2があり印刷シートはHLOOKUPでシート1の情報を反映させています。
データベースの頭の番号を参照して連続印刷のマクロを組んでいるのですが、チェックボックスにチェックした順で印刷できたら楽なため質問させていただきました。
なんとかカウントアップの方法ないものでしょうか
ご回答ありがとうございます
データベースのシート1と印刷シート2があり印刷シートはHLOOKUPでシート1の情報を反映させています。
データベースの頭の番号を参照して連続印刷のマクロを組んでいるのですが、チェックボックスにチェックした順で印刷できたら楽なため質問させていただきました。
なんとかカウントアップの方法ないものでしょうか