Excel VBA質問箱 IV

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

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


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

【21438】アクティブセルののクリア方法 okb 05/1/21(金) 8:54 質問[未読]
【21439】Re:アクティブセルののクリア方法 IROC 05/1/21(金) 9:04 回答[未読]
【21443】Re:アクティブセルののクリア方法 okb 05/1/21(金) 10:45 質問[未読]
【21444】Re:アクティブセルののクリア方法 IROC 05/1/21(金) 11:59 回答[未読]
【21451】Re:アクティブセルののクリア方法 okb 05/1/21(金) 14:57 質問[未読]
【21476】Re:アクティブセルののクリア方法 IROC 05/1/21(金) 17:34 回答[未読]
【21479】Re:アクティブセルののクリア方法 okb 05/1/21(金) 18:11 質問[未読]
【21480】Re:アクティブセルののクリア方法 IROC 05/1/21(金) 18:18 回答[未読]
【21481】ありがとうございました。 okb 05/1/21(金) 18:34 お礼[未読]

【21438】アクティブセルののクリア方法
質問  okb  - 05/1/21(金) 8:54 -

引用なし
パスワード
   自動記録によるマクロの作成の知識しかありません。
次の2つのマクロを作りたいのですが、ご教示願えないでしょうか?
手順は、次のとおりです。

1.Sub 消し込み()
   (1)activeセルが、"C7:C506"以外なら"C3"に"エラー"を表示して終わる。
   (2)activeセルから12列1行分の値を消す(Deleteキーを押す)
  End Sub

2.Sub 月次消し込み()
   (1)セル"M2"に入力がなければ、"C3"に"エラー"を表示して終わる。
   (2)セル"C7"をアクティブにする。
   (3)For GYO= 1 to 500
     セル"M2"の値とactiveセルの値を比較して同じなら、1項の処理
     異なれば、activeセルの行を1つ上げる。
     Next GYO
以上2点、よろしくお願いします。

【21439】Re:アクティブセルののクリア方法
回答  IROC  - 05/1/21(金) 9:04 -

引用なし
パスワード
   Sub 消し込み()
  If Application.Intersect(ActiveCell, Range("C7:C506")) Is Nothing Then
    Range("C3").Value = "エラー"
  Else
    ActiveCell.Resize(1, 12).ClearContents
  End If
End Sub

Sub 月次消し込み()
Dim i As Long
  For i = 7 To 1 Step -1
    If Range("M2").Value = Cells(i, 3).Value Then
      If Range("M2").Value <> "" Then
        Range("C3").Value = "エラー"
      End If
    End If
  Next i
End Sub

【21443】Re:アクティブセルののクリア方法
質問  okb  - 05/1/21(金) 10:45 -

引用なし
パスワード
   早々のレスありがとうございました。
Sub 消し込み()の動作は確認できました。
"エラー"の位置を行の右13列先に表示い変更したいのですが、下記をどう変更すればいいでしょうか?
なにから、なにまですみません。
>    Range("C3").Value = "エラー"

Sub 月次消し込み()は、まだ判っていません。 次のようにしたのですが…。
Dim i As Long
  If Range("M2").Value <> "" Then
        Range("F3").Value = "エラー"
        Exit End Sub この記述大丈夫か?
  End If
'7行目から506行目まで
  For i = 7 To 506
    If Range("M2").Value = Cells(i, 3).Value Then
      ここへ当該行の3列目から12列目までの値を消す記述をしたい。 
    End If
  Next i
End Sub

手取り足取りで、申し訳けありません。

【21444】Re:アクティブセルののクリア方法
回答  IROC  - 05/1/21(金) 11:59 -

引用なし
パスワード
   修正してみました。


Sub 消し込み()
  If Application.Intersect(ActiveCell, Range("C7:C506")) Is Nothing Then
    ActiveCell.Offset(0.13).Value = "エラー"
  Else
    ActiveCell.Resize(1, 12).ClearContents
  End If
End Sub


Sub 月次消し込み()
Dim i As Long
  
  If Range("M2").Value <> "" Then
    Range("F3").Value = "エラー"
    Exit Sub
  End If
  
  For i = 7 To 506
    If Range("M2").Value = Cells(i, 3).Value Then
      Range(Cells(i, 3), Cells(i, 12)).ClearContents
    End If
  Next i
End Sub

【21451】Re:アクティブセルののクリア方法
質問  okb  - 05/1/21(金) 14:57 -

引用なし
パスワード
   度々の回答、ありがとうございます。
すみません。条件がまずかったです。
"エラー"の表示をactiveセルと同一行の17列で固定するとき、
ActiveCell.Offset(0.13).Value = "エラー"の記述はどうなるのでしょうか?
よろしく、お願いします。

>Sub 消し込み()
>  If Application.Intersect(ActiveCell, Range("C7:C506")) Is Nothing Then
>    ActiveCell.Offset(0.13).Value = "エラー"
>  Else
>    ActiveCell.Resize(1, 12).ClearContents
>  End If
>End Sub
>

【21476】Re:アクティブセルののクリア方法
回答  IROC  - 05/1/21(金) 17:34 -

引用なし
パスワード
   ドットとカンマの誤記では?

Offset(0.13) → Offset(0,13)

ぜひコードの意味は自分で調べて勉強して下さいね。

【21479】Re:アクティブセルののクリア方法
質問  okb  - 05/1/21(金) 18:11 -

引用なし
パスワード
   IROCさん、度々すみません。
Offsetの使い方がよくわかりません。
>Offset(0.13) → Offset(0,13)
投稿ミスで、Offset(0,13)となっています。

activeセルの列から13列目ではなく、
"エラー"の表示をactiveセルと同一行の17列で固定するとき、
ActiveCell.Offset(0,13).Value = "エラー"の記述はどうなるのでしょうか?
ということなんですが…。

>ぜひコードの意味は自分で調べて勉強して下さいね。
ヘルプだけでは、わかりませんね。
参考本を購入して、勉強します。今回だけは宜しくお願いします。

【21480】Re:アクティブセルののクリア方法
回答  IROC  - 05/1/21(金) 18:18 -

引用なし
パスワード
   >Offsetの使い方がよくわかりません。
Offset(行のズレ,列のズレ) なので、
Range("A1").Offset(1,0) で セルA2
Range("A1").Offset(1,1) で セルB2
Range("C10").Offset(-5,-1) で セルB5
となります。


>activeセルの列から13列目ではなく、
>"エラー"の表示をactiveセルと同一行の17列で固定するとき、
Cells(ActiveCell.Row , 17).Value


>ヘルプだけでは、わかりませんね。
そうですか?
Offsetは簡単なプロパティなのでヘルプも分かりやすいと思いますが・・

【21481】ありがとうございました。
お礼  okb  - 05/1/21(金) 18:34 -

引用なし
パスワード
   助かりました。
大変、お手数をかけ、申し訳ありませんでした。

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