Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6783 / 13644 ツリー ←次へ | 前へ→

【43155】マクロをイベントプロシージャに組み込む方法を教えてください てぷこ3 06/10/3(火) 22:05 質問[未読]
【43157】Re:マクロをイベントプロシージャに組み込... yata 06/10/3(火) 23:04 回答[未読]
【43162】Re:マクロをイベントプロシージャに組み込... てぷこ3 06/10/4(水) 0:13 お礼[未読]
【43158】Re:マクロをイベントプロシージャに組み込... MM 06/10/3(火) 23:05 回答[未読]
【43161】Re:マクロをイベントプロシージャに組み込... てぷこ3 06/10/4(水) 0:07 お礼[未読]

【43155】マクロをイベントプロシージャに組み込む...
質問  てぷこ3  - 06/10/3(火) 22:05 -

引用なし
パスワード
   下記のように動作するイベントプロシージャを作りたいと考えています

1) セルA1に変化があった場合
2) 一つ下の段に一行挿入して
3) A1に戻って数値をコピー
4) 一つ下のセル(先ほど挿入した行のセル)に「形式を選択して貼り付け→値」で数値をペースト

この様にしたいのですが、イベントプロシージャを使うならばPrivate Sub Worksheet_Change(ByVal Target As Range)を使うべきなのでしょうか?
途中まで作った下記のマクロを挿入しようとしたのですが、上手く行きませんでした。。。。。


Sub 一行挿入してコピペ()
  Rows("2:2").Select
  Selection.Insert Shift:=xlDown
  Range("A1").Select
  Selection.Copy
  Range("A2").Select
  Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
  Application.CutCopyMode = False
  Range("A1").Select
End Sub


この様に指定したセルに変化があった場合に細かい指示を与えたい場合はどの様に組み込めば良いのでしょうか?

参考になるHPなども紹介して頂けると助かります
よろしくお願いします

【43157】Re:マクロをイベントプロシージャに組み...
回答  yata  - 06/10/3(火) 23:04 -

引用なし
パスワード
   ▼てぷこ3 さん:
こんばんは
シートのChangeイベントでいいと思います

>下記のように動作するイベントプロシージャを作りたいと考えています
>
>1) セルA1に変化があった場合
>2) 一つ下の段に一行挿入して
>3) A1に戻って数値をコピー
>4) 一つ下のセル(先ほど挿入した行のセル)に「形式を選択して貼り付け→値」で数値をペースト
>
値貼り付けにするのはA1に数式が入っているのですか?
行の挿入は1つ下の行にEntireRow.Insertで出来ます。
以下の様にしてみました。
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
  If .Row = 1 And .Column = 1 Then
    .Offset(1, 0).EntireRow.Insert
    Range("A1").Copy

    Range("A2").PasteSpecial Paste:=xlPasteValues
  End If
End With
  Application.CutCopyMode = False
  Range("A1").Select
End Sub

【43158】Re:マクロをイベントプロシージャに組み...
回答  MM  - 06/10/3(火) 23:05 -

引用なし
パスワード
   こんな事ですか?
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Address <> "$A$1" Then Exit Sub
  Rows("2:2").Insert Shift:=xlDown
  Range("A2").Value = Range("A1").Value
  Range("A1").Select
End Sub

【43161】Re:マクロをイベントプロシージャに組み...
お礼  てぷこ3  - 06/10/4(水) 0:07 -

引用なし
パスワード
   MM さん、ありがとうございます!
Valueを使えばスッキリしますね
勉強になりました

A1には楽天のマーケットスピードのRSS情報が反映される下記のような数式が入るのですが、

=RSS|'4661.T'!歩み1

現在営業時間で無いためか、同じ情報を貼りなおしてテストしてみたところ、一回目はどうしても#N/Aが出てしまいます

明日のザラ場でテストしていじってみます

【43162】Re:マクロをイベントプロシージャに組み...
お礼  てぷこ3  - 06/10/4(水) 0:13 -

引用なし
パスワード
   yata さん、ありがとうございます!

紹介して頂いた方法で動作したのですが、やはり変化した1回目は#N/Aが出てしまいます

A1には楽天のマーケットスピードのRSS情報が反映される下記のような数式が入ります

=RSS|'4661.T'!歩み1

数式ごとコピーしてしまうと変化し続けてしまうのでああいった方法をとってみました

現在営業時間で無いので同じ情報を貼りなおしてテストしていますが、明日のザラ場で動作の再確認してみます

6783 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free