アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
以下のようなことを実現したいのですが、具体的にどのようにすれば良いのでしょうか?

シートが2つ
・S1シート
・S2シート

1.S2シートのC1セルにチェックボックスを作成
2.そのチェックボックスにチェックを入れると
  ⇒S2シートのA1のデータがS1シートのA1に表示され、
   S2シートのB1のデータがS1シートのB1に表示される。
  ⇒それとともに、S2シートのA1,B1,C1セルに青色がつく。
3.チェックボックスをはずすと、
  ⇒表示されていたS1シートのデータが消える。
  ⇒それとともに、青色も消える。

A 回答 (5件)

一応、コントロールツールのチェックボックスにさせていただきました。



Private Sub CheckBox1_Click()
With Worksheets("S2")
  If Worksheets("S2").CheckBox1 Then
   Worksheets("S1").Range("A1:B1").Value = .Range("A1:B1").Value
   '配列による貼り付け
   .Range("A1:C1").Interior.ColorIndex = 5 '青のColorIndex
  Else
   Worksheets("S1").Range("A1:B1").ClearContents '消去
   .Range("A1:C1").Interior.ColorIndex = xlNone
  End If
End With
End Sub

この回答への補足

ご回答ありがとうございました。
もう少し教えてください。
上記回答の場合、チェックボックスON時に
初めてS2シートのデータがS1シートに反映されます。

これをチェックボックスがONの時は
リアルタイムにS2シートのデータがS1シートに
反映させることは可能でしょうか?

※Indirect関数等で参照させれば良いのかなと思い、
 いろいろやりましたが、実力不足でした。
 
お手数掛けますが、よろしくお願いします。

補足日時:2005/05/02 15:57
    • good
    • 0

> お手数掛けますが、よろしくお願いします。


No.2のmatsu_junです。
Wendy02様を差し置いて拙作を披露させていただきますこと、申し訳ございません。
No1のソースの下の行に、以下を貼り付けてください。

Private Sub Worksheet_Change(ByVal Target As Range)
  If CheckBox1.Value Then Worksheets("S1").Range("A1:B1").Value = Range("A1:B1").Value
End Sub

蛇足ですが、これはセルの値が変更されるたびに実施される命令と考えてください。
    • good
    • 0

別の案もひとつ



表示-ツールバー-フォームのチェックボックスを使用する方法です。

1.S2シートに上記のチェックボックスを置く
2.チェックボックスを右クリックしてコントロールの書式設定を開く
3.コントロールタブのリンクするセルで何処かを指定(以下の例ではセル D1)
4.A1に =IF($D1,'S1'!A1,"") と入力し、B1へコピー
5.A1~C1を選択し、書式-条件付書式で「数式が」に =D1 と入れて書式を設定
    • good
    • 0

matsu_jun様へ



いつも読ませていただいております。
フォローアップありがとうございました。
このColorIndexの色の「青」って、かなり濃い青なんですね。だから、塗りつぶし(パターン)にすると、下の文字が見えにくくなってしまいますね。

もう少し違った色(水色)とかに換える必要はあるのかなって思いました。

superstar 様へ
今回は、コントロールツールのチェックボックスにしましたので、ツールバーの水色の三角定規(デザインモード)をオンにして、チェックボックスを右クリックして、コードの表示を選ぶと、
Private Sub CheckBox1_Click()

End Sub
が現れますので、それに上書きでも、中身だけを貼り付けでも構いません。(S2のシートモジュールに作られます)後は、右上の×をクリックして閉じれば、完成です。お分かりになっていたら、読み飛ばしてください。
    • good
    • 0

マクロをしこしこと作成していたら先を越されてしまいました。

。。
ほとんど同じものができましたので、あえて載せる必要もないなということで、
おまけのページを紹介しておきます。

Wendy02様のソースで、
 .Range("A1:C1").Interior.ColorIndex = 5 '青のColorIndex
という部分がありまして、もし他の色にしたいという場合は
以下のページをご参照の上、数字を"5"からお好みのものに変更してください。

参考URL:http://www.relief.jp/itnote/archives/000482.php

この回答への補足

ご回答ありがとうございました。
もう少し教えてください。
上記回答の場合、チェックボックスON時に
初めてS2シートのデータがS1シートに反映されます。

これをチェックボックスがONの時は
リアルタイムにS2シートのデータがS1シートに
反映させることは可能でしょうか?

※Indirect関数等で参照させれば良いのかなと思い、
 いろいろやりましたが、実力不足でした。
 
お手数掛けますが、よろしくお願いします。

補足日時:2005/05/02 16:01
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!