• 締切済み

チェックボックスのリンク先を変更したい

2枚のシートがあります。 1枚のチェックボックスの状態を別シートのセルにリンクしています。 例えばこんな状態です↓ <シートA>   A     B  C 1 ON(B!C1) 001 イグチ 2 OFF(B!C2) 002 アオキ 3 ON(B!C3) 003 ウエダ ※ON/OFFはチェックボックスのことです。  ()内がリンクセルです。 <シートB>  A  B    C 1 001 イグチ TRUE 2 002 アオキ FALSE 3 003 ウエダ TRUE シートAは表示用のシートで実際のデータ操作はシートBを使います。 シートBで並び換えを行ってもシートAのチェックボックスのリンク先は 並び換え前から変わりません。 並び替え後のセルに自動的にリンク先が変わるようにするにはどのように設定すればよいのでしょうか? よろしくお願いします。

  • merys
  • お礼率96% (25/26)

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 チェックボックスは、お話の様子からすると、フォームで作られたものだと思います。確かに、ご質問の内容については、理解しますが、一旦、コピーで取って、別の場所で並び替えをしたほうが、楽ですね。 それ以外は、マクロで処理するしかありません。場所などの変更、また、イベントに取り付けるなどは、もしお分かりになれば、ご自身でお試しになってみてください。 '<標準モジュール> Sub test1() Dim Sh1 As Worksheet, Sh2 As Worksheet Dim chbx As Object, buf As Double Set Sh1 = Worksheets("シートA") Set Sh2 = Worksheets("シートB") With Sh1 For i = 1 To .Range("B1", .Range("B65536").End(xlUp)).Rows.Count rtn = Application.Match(.Cells(i, 2).Value, Sh2.Columns(2), 0) If Not IsError(rtn) Then   For Each chbx In Sh1.Shapes    If chbx.FormControlType = xlCheckBox Then    With chbx    If Not Intersect(.TopLeftCell, Sh1.Cells(i, 1)) Is Nothing Then     buf = IIf(Sh2.Cells(rtn, 3).Value, 1, -4146)     .DrawingObject.LinkedCell = Sh2.Name & "!" & "C" & rtn      .DrawingObject.Value = buf     End If    End With    End If   Next chbx End If Next i End With End Sub

merys
質問者

お礼

ご回答ありがとうございます。 やっぱり自動的には変わらないのですね。。。 教えていただいた方法ではありませんが、何とかすることは出来ました。 ご回答くださったマクロを見て、知らなかった技(?)もあり、大変参考になりました。 エクセルについて少しはわかってきたつもりになっていましたが、まだまだ勉強ですね。 本当にありがとうございました。

関連するQ&A

  • エクセル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関数を使ってリンクするセルを指定することはできませんよね? どうかよろしくおねがいします。

  • Excelチェックボックスのリンクするセル一括

    Excelでチェックボックスのリンクするセルを一括設定したいです。 sheet1に複数のチェックボックスを作成し、それぞれのリンクするセルをsheet2に入れたいのですが、チェックボックスが数10個あるので、1つづつやっていると手間がかかります。 例 sheet1のB2のリンクするセルをsheet2のB2 sheet1のB3のリンクするセルをsheet2のB3 sheet1のB4はsheet2のB4 … 一括でやる方法(多分VBA)はわかりますか。

  • Excel チェックボックスにより選択され印刷

    よろしくお願いします。 A□ (F10のセルにtrue) B□ (F11のセルにtrue) C□ (F12のセルにtrue) Aならページ60 Bならページ70 Cならページ80 チェックボックスを3つ用意して、チェックがされている個所(ページ)のみ印刷をしたいです。 チェックボックスオンでtrueを返すまでは設定できたのですが、例えば、Aがオン(F10にtrueが表示)ならページ60を印刷と言うのがなぜか出来なくて困っています。 ご教授下さい。

  • チェックボックスとボタンの組み合わせによってリンク先を決める

    当方、script等にはまったく持って初心者です。 以下の仕様のJavascriptが作りたいのですが、全然わからないのです・・・。 チェックボックスAとボタンAを押す・・・・1のリンク先へ チェックボックスBとボタンAを押す・・・・2のリンク先へ チェックボックスCとボタンAを押す・・・・3のリンク先へ チェックボックスAとボタンBを押す・・・・4のリンク先へ チェックボックスBとボタンBを押す・・・・5のリンク先へ チェックボックスCとボタンBを押す・・・・6のリンク先へ 見た目的にはこんな感じです。 ------------------- □暇なときに回答ください □困ってます □すぐに回答ほしいです [Aボタン][Bボタン] ------------------- という感じです。 チェックボックスは複数選択する予定はありません。 (なので、チェックボックスではなく、ラジオボタンでも可です)。 チェックボックスを複数選択しない・・というとこへのツッコミはなしでお願いします^^; 何卒よろしくお願いいたします。

  • エクセルVBAでのチェックボックス操作

    エクセルを利用した、VBAで困っています。 所定のsheetに埋め込まれたチェックボックスに対して、 別sheet内のセルの値を参照し、結果をオン、オフという 操作を行いたいのですが、チェックボックスに対するVBAでの指定方法 が分かりません。 イメージとしては (1)Sheet1内にチェックボックスがある。  該当チェックボックスは7個のチェックボックスで構成されており  それぞれにchb1~chb7といったオブジェクト名がある。 (2)sheet2のA1セルに特定の値が入っていればチェックボックス(chb1)  がオン値がなければオフのまま (3)sheet2のB1セルに特定の値が入っていればチェックボックス(chb2)  がオン値がなければオフのまま という感じです。 先方より指定された様式なのでsheet1の内容や書式を変更することが出来ないので、なんとか埋め込まれたオブジェクトを操作したいのですが・・・ 良い方法があれば教えてください。

  • VBA シート上のチェックボックスの値の取得

    (作業環境 windowsXP Excel2007 作業対象のブックは.xls) シート上に1ブックにつき3000個ほどのチェックボックスがあります。 このブックが現在約1000個、すでに配布・回収されております。 これからチェックボックスの選択状況やセルに入力された値をマクロで収集するのです。 大半のチェックボックスにはすでに「リンクするセル」の設定がされており、そのセルの値を参照すればチェック状態の取得は容易なのですが、 最初にこのブックを作った方が一部のチェックボックス群(3000個中500個程度)にリンクの設定をするのを忘れていたのです。 このリンク設定のされていないチェックボックスの値の取得についてご質問です リンクセルの設定をするのであれば sub a() ActiveSheet.Shapes("Check Box 1").Select Selection.LinkedCell = "$A$1" ・ end sub でいいのでしょうが、これだとselectのはずみで チェックボックスがTrueになってしまします。 リンクせずに直接チェックボックスの値をブール型で取得しようと思い dim a as boolern a = Activesheet.checkboxes(1).value としましたが、ためしに別ブックのシート上に1つだけチェックボックスを作って実行すると、チェック状態にかかわらずTrueが返ります。 checkboxesの使い方がダメなんでしょうか? 求める回答としては (1)上記のやり方でもできるが、間違っている部分がある (2)上記以外のやり方でもっと簡単な(早い)やりかたがある のどちらかのようなアドバイスをいただけると幸甚です。 よろしくおねがいします

  • チェックボックスのリンク

    シート1のA1に設定したチェックボックスを、シート2のA1とリンクさせたいのですが、可能でしょうか?

  • エクセルVBA チェックボックスで;;

    下記のような表を作っているんです・・・     A   B   C    D    1  日付  名前  評価   2  1日   あ   A   □ 3  2日   い   B   □ 4  2日   う   A   □ 5  4日   え   D   □ というような感じです(まだ右と下は項目いっぱいあります) Dのセルにチェックボックスをつけてチェックが入った物のみを別なシートにコピーしてそのページを印刷させ印刷し終わったら印刷した行の色を変えたいのです。 色々試してみたのですが、チェックボックスのON OFF判断もままならない状況でした;; どなたか宜しくお願いいたします。

  • エクセルのチェックボックス

    エクセルで作成した表  日付と品名とチェックボックスと金額が入ったセルがあります。    例  A           B        C 日付          金額   チェックボックスと金額 1999/12/1   1000   □  500 2000/10/1   2000   □  600 という風にデータが入った表を日付ごとに並べ替えをしようとすると チェックボックスのデータだけチェックマークがオンのデータをオフのデータが 並びかえがされず、困っています。 どうしたらいいのでしょうか?

  • エクセル マクロ フォームのチェックボックス

    エクセルのフォームのチェックボックスで【On】にした際に 「コントロールの書式設定」にある「リンクするセル」のロックをしたいのですが マクロで実現する際、どのようなにできるのでしょうか? また、フォームのチェックボックスで【Off】にした際に、「リンクするセル」のロックの解除のしたいです。 初心者で下記を記述しましたが、チェックボックスが多いため、すべてのチェックボックスに登録するのが時間がかかるのあで、教授お願いします。 Cells.Locked = False ActiveSheet.Protect userinterfaceonly:=True ActiveSheet.Range("AY29").Locked = True

専門家に質問してみよう