- ベストアンサー
Excelチェックボックスのリンクするセル一括
Excelでチェックボックスのリンクするセルを一括設定したいです。 sheet1に複数のチェックボックスを作成し、それぞれのリンクするセルをsheet2に入れたいのですが、チェックボックスが数10個あるので、1つづつやっていると手間がかかります。 例 sheet1のB2のリンクするセルをsheet2のB2 sheet1のB3のリンクするセルをsheet2のB3 sheet1のB4はsheet2のB4 … 一括でやる方法(多分VBA)はわかりますか。
- Excel(エクセル)
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
もし添付画像のように、チェックボックスの名前が Check Box 1 Check Box 2 Check Box 3 ... といった1からの連番で、 Check Box 1 のリンクするセルがsheet2のB2 Check Box 2 のリンクするセルがsheet2のB3 Check Box 3 のリンクするセルがsheet2のB4 ... という設定になるのであれば、 以下のコードでイケルと思います。 Sub sample() Dim sh As Shape For Each sh In ActiveSheet.Shapes sh.Select Selection.LinkedCell = "Sheet2!$D$" & (Val(Right(sh.Name, 2)) + 1) Next sh End Sub もしチェックボックスの名前からリンクするセルを求めることが困難であれば、 Sub abc() MsgBox Range("B2").Top MsgBox Range("B2").Height End Sub といったコードで、B2セルの開始位置と高さを提示してもらえば 別なコードを提示できると思います。
その他の回答 (2)
- HohoPapa
- ベストアンサー率65% (454/691)
https://okwave.jp/qa/q9964807.html で紹介したコードを応用した、 後記コードはいかがでしょうか? Sub sample() Dim sh As Shape Dim LineNum As Long For Each sh In ActiveSheet.Shapes If Left(sh.Name, 9) = "Check Box" Then '何行目にあるかを調べる LineNum = SearchR(sh.Top + (sh.Height / 2)) 'リンクセルを設定 sh.Select Selection.LinkedCell = "Sheet2!$D$" & Format(LineNum, "0") End If Next sh End Sub '縦位置から該当行番号を取得する関数 Function SearchR(MyTop As Double) As Long Const MaxRows = 100 '最大行数 Dim r As Long For r = 1 To MaxRows If ((Cells(r, 1).Top < MyTop) And _ (Cells(r, 1).Top + Cells(r, 1).Height > MyTop)) Then SearchR = r Exit Function End If Next r End Function
- aokii
- ベストアンサー率23% (5210/22062)
下にドラッグアンドコピー
お礼
それができればいいのですがね。。。 関数ならそれでやってました。 回答ありがとうございます。
関連するQ&A
- チェックボックスのリンクするセル一括設定
似たような質問を送ったのですが、 B2のチェックボックスのリンクがsheet2のB2 B3のチェックボックスのリンクがsheet2のB3 ... というのはできたのですが、 D2のチェックボックスのリンクがsheet2のD2 ... というVBAを作ると、B列のリンクが消えてしまいます。 どのようなVBAを書けばよいでしょうか。
- ベストアンサー
- Excel(エクセル)
- エクセルのチェックボックスとかについて
エクセルのチェックボックスとかについて エクセルのセル上にある複数のチェックボックスやラジオボタンを一括で消去する方法はありますか? 1つづつケ消していく方法しか分からずに困ってます。
- ベストアンサー
- オフィス系ソフト
- エクセルでマクロを使わずに複数のチェックボックスに一括チェックするコマンドボタンを作れますか?
エクセルで商品管理のシートを作成しています。 10店舗ほど支店があるので、取扱店舗をチェックボックスで 選択できるようにしていますが、全店取扱の商品がかなり有るので 一括で10個のチェックボックスにチェック出来る様にしたいのです。 最初はコマンドボタンのLINKEDCELLにチェックボックスで参照している セルが連動するように数式を入れていたのですが、このやり方だと ボタンを使わずにチェックボックスを使うと参照セルの数式が 「TRUE/FALSE」に上書きされてしまい、以後ボタンと連動しなくなってしまいます。 出来ればコマンドボタンのLINKEDCELLプロパティを複数セルに指定したいのですが、可能でしょうか? ※「A1:G1」等と設定してみたのですが、連動するのは「A1」のみでした… VBAを使用すれば良いのでしょうが、まったく知識が無いので時間的に厳しい状況です。 どなたかお分かりの方がいらっしゃればご助言お願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル2003のチェックボックス一括解除について
シート上にある、フォームで作成したチェックボックスに付けられたチェックを、 コントロールツールボックスで作成した、「ボタン」をクリックして、 一括に、チェックを外したいと思うのですが、 「ボタン」にVBAを記述して、このようなことは可能でしょうか? ご教授いただけます方、どうぞよろしくお願い申し上げます。
- ベストアンサー
- その他MS Office製品
- エクセルシート上の[チェックボックス]を一括消去する方法を教えて下さい。
表示]→[ツールバー]→[フォーム]の、[チェックボックス]で作成した、エクセルシート上の[チェックボックス]を一括消去する方法を教えて下さい。右クリック選択して1個ずつ切り取り消去していますが、列削除や編集→クリア→すべて でも消去できず、たくさんあるときは手間がかかります。
- ベストアンサー
- その他(ビジネス・キャリア)
- エクセルチェックボックス
エクセルのコントロールボックスでチェックボックスを使用したいんですがうまく使えません ユーザーフォームは使用せず、セルに直接貼り付けを考えてます このチェックボックスは複数使用したいと思っています 具体的な例としてチェックを入れたらセルにリンクして数字を動かしたい チェックしたら1 はずしたら2を入れる IF関数との連結を考えています 当方の使用環境はWindows Vista , エクセル2007を使用しています よろしくお願いします
- ベストアンサー
- オフィス系ソフト
- Excelのチェックボックスの有無で複数セルの表示を○に変えたい
Excelのチェックボックスのチェックを付けて、複数個所の表示を変えたいと考えています。 チェックボックスにチェックをつけたら、複数のセルに○が表示されるようにしたいのですが、設定の仕方が分かりません。 どなたか教えてください。 (現在一つのセルにだけ○を表示させる事は出来ています) 【現在】 (1)チェックボックス「1」を配置 (2)以下の設定。 コントロールの書式設定→コントロールタブ選択。→リンクするセルでa1を指定→ok ⇒チェックボックス操作で、a1にtrue・falseが表示されている。 (4)b1に数式を入力する。=IF(A1=TRUE,"○","ー") (5)チェックが入った場合はb1に○が表示されている。 【やりたい事】 (1)チェックボックス「1」にチェックが入った場合、b1,d1,f1,h1,j1,l1,等の複数セルに○を表示させたい (2)チェックボックス「2」、を同様に作成し、チェックを入れた場合、 b1,d1,のセルに○を表示させたい。 (チェックボックス「1」にチェックが入ってない場合でも「2」にチェックが入れば、○を表示させたい)
- ベストアンサー
- オフィス系ソフト
- エクセルVBAで、シート上で結合されたセルに一つだけチェックボックスを
エクセルVBAで、シート上で結合されたセルに一つだけチェックボックスを作成したいです。 以前こちらの別の方の質問で、選択されているセルにチェックボックスを作成するプログラムが紹介されており、同じようにやってみたところ、セルが結合されていない場合は問題ないのですが、 セルが複数結合されている場合、結合されているセル分チェックボックスが出来てしまいます。 (例えば、エクセルのシート上で、A3セルからA6セルまでが結合されていた場合、合計4つチェックボックスが結合セル内に出来てしまいます) 結合セル内には一つしかチェックボックスを作りたくありません。 どうしたらよいでのしょうか? 以前紹介されていた、チェックボックスを作るプログラムは下記のようなものでした。 よろしくお願いいたします。 Sub sample() Dim cb As CheckBox For Each cb In ActiveSheet.CheckBoxes cb.LinkedCell = cb.TopLeftCell.Address Next cb End Sub
- ベストアンサー
- Visual Basic
- エクセルVBAでのチェックボックス操作
エクセルを利用した、VBAで困っています。 所定のsheetに埋め込まれたチェックボックスに対して、 別sheet内のセルの値を参照し、結果をオン、オフという 操作を行いたいのですが、チェックボックスに対するVBAでの指定方法 が分かりません。 イメージとしては (1)Sheet1内にチェックボックスがある。 該当チェックボックスは7個のチェックボックスで構成されており それぞれにchb1~chb7といったオブジェクト名がある。 (2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1) がオン値がなければオフのまま (3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2) がオン値がなければオフのまま という感じです。 先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・ 良い方法があれば教えてください。
- ベストアンサー
- Visual Basic
- エクセルVBA チェックボックスのリンク先を条件により変更
こんなことは可能でしょうか? sheet1,sheet2,sheet3,は同じフォームで、それぞれチェックボックスがあり、リンク先をそれぞれのシートのA1に設定しているとします。 sheetdataではそれぞれのシートの情報をVBAを使用して表示させています。(例えばsheet1からsheetdataに行くと、sheet1の情報がsheetdataに表示され、sheet2からだとsheet2の情報がsheetdataに更新されます) ここで、sheetdataにも同じチェックボックスがあるとします。 このチェックボックスに条件をつけて、sheetdataにsheet1の情報が表示されているときはsheet1のA1にリンクし、sheet2が表示されているときはsheet2のA1にリンクすると言ったことはできるのでしょうか? 要するに、sheetdata上でチェックボックスのON/OFFを変更した際、その元となるシートも変更できるようにしたいのです。 VBAでif関数などを使って、リンク先のシートを変更できればいいのですが・・・。コントロールの書式設定ではIf関数を使ってリンクするセルを指定することはできませんよね? どうかよろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
お礼
できました。ありがとうございます。