- ベストアンサー
エクセル VBA
エクセルに関する事項で質問です。 たとえば、Sheet1の"A1"に"○"を入れたら、自動的に"A2"にも"○"がはいるようにしたいです。(※"A2"のセルはもともとは空白の状態で) こんな説明でわかりますでしょうか。 なにか良い方法があれば教えてください。 よろしくお願いいたします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#3です。 当該シートのモジュールに以下を書いてみました。なお、前回分は削除してください。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Range("a1").Value = "○" Then Range("a2").Value = "○" Else Range("a2").ClearContents End If If Range("b1").Value = "○" Then Range("b2").Value = "○" Else Range("b2").ClearContents End If End Sub ご意向に沿ってるかわかりません。 前回同様、使用時に想定される色々なパターンで試行してみてください。
その他の回答 (4)
- soixante
- ベストアンサー率32% (401/1245)
みたび失礼します。#3、4です。 私も同じ条件で試してみましたが、特段遅くなる様子は見られませんでした。 というわけで、この件についてはお役に立てなさそうです。すみません。
お礼
すみません。 いろいろと回答していただき、ありがとうございました。 教えて頂いた、プログラムだけでなく、 他のプログラムも重なって、動作がおもくなっているようです。 いろいろと検討してみます。
- soixante
- ベストアンサー率32% (401/1245)
既に出ている回答と同意見ですが、 >(※"A2"のセルはもともとは空白の状態で) とありますので、何らかの事情で、A2セルには何も入れておきたくないのだと理解して回答します。 私もVBA初心者ですが、私なら以下のように処理します。 VBE画面を開けて、当該シートのモジュールに以下を書いてみました。 Private Sub Worksheet_Change(ByVal Target As Range) If Cells(1, 1).Value = "○" Then Cells(2, 1).Value = "○" ElseIf Cells(1, 1).Value <> "○" Then Cells(2, 1).ClearContents End If End Sub ご意向にあってるかわかりません。詳細がわからないので、A1セルに○以外が入った場合は、A2の内容を消去するようにしました。 色々なパターンを鑑みて改造してください。 ・A1に○が入った場合、A2に○が入る。その後A1セルが○以外に変更されることはあるか。ある場合、A2はどうしたいのか。 ・A2セルには何も入れることはないのか。 (上記ですと、A2に何か入れようとした場合入りません。だったら、既に出ている回答どおりに、A2にIF式を入れておけばよいだけなので。) など、使用の際に想定される色々なパターンを検討してみなければなりません。
お礼
回答ありがとうございました。 ものすごく助かりましたが、 追加で、さらに 質問した条件に加えて、 B1"に"○"を入れたら、自動的に"B2"にも"○"がはいるようにするには、教えて頂いた式にどのように加えればよいのでしょうか? 甘えてしまってすみませんが、よろしくお願いいたします。
補足
回答ありがとうございました。 ものすごく助かりましたが、 追加で、さらに 質問した条件に加えて、 B1"に"○"を入れたら、自動的に"B2"にも"○"がはいるようにするには、教えて頂いた式にどのように加えればよいのでしょうか? 甘えてしまってすみませんが、よろしくお願いいたします。
- higekuman
- ベストアンサー率19% (195/979)
#1さんとまったく同意見です。 Excelの計算式でできることは、できるだけVBAを使わずにやったほうが良いですよ。
お礼
Excelの計算式でできるやり方があれば、教えて頂けると助かります。 ただし、セル"A2"は空白という条件が必須です。 よろしくお願いいたします。
VBAじゃなきゃだめなんでしょうか? A2に =IF(A1="○","○","") じゃだめ?
お礼
回答していただいてありがとうございます。 あくまでも"A2"には文字を入れたくなかったので...
お礼
すみません。 いろいろとありがとうございました。 自分がやりたいことはこれで全て解決できました。 ただし、この式を加えてから、一度、印刷プレビュー画面を見たあと、 画面に戻ると、エクセルの動作が極端におそくなりました。 なにか原因があるのでしょうか?