Excel VBA質問箱 IV

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

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


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

【30839】Addressの除外範囲の設定 ぽんかん 05/11/5(土) 21:26 質問[未読]
【30840】Re:Addressの除外範囲の設定 かみちゃん 05/11/5(土) 21:37 発言[未読]
【30843】ActiveCellの計算除外範囲を広げる ぽんかん 05/11/5(土) 22:13 質問[未読]
【30844】Re:ActiveCellの計算除外範囲を広げる かみちゃん 05/11/5(土) 22:20 発言[未読]
【30841】Re:Addressの除外範囲の設定 MOON 05/11/5(土) 21:54 回答[未読]
【30845】Re:Addressの除外範囲の設定 ぽんかん 05/11/5(土) 22:21 お礼[未読]

【30839】Addressの除外範囲の設定
質問  ぽんかん  - 05/11/5(土) 21:26 -

引用なし
パスワード
   Subtotalでの集計で、例えActiveCellであっても、集計をしない
セルとしてA1〜A4を設定したいのですが、下のA4からセル範囲を
広げるコードはどのようにすると良いのでしょうか。
また、Address(0,0)の役割?というのかその意味合いについて
教えていただきたくお願いします。

Sub SubT()
If ActiveCell.Address <> "$A$4" Then
  ActiveCell.Formula = _
  "=SUBTOTAL(9,B5:" & Range("B65536").End(xlUp).Offset(1).Address(0, 0) & ")"
ActiveCell.Font.ColorIndex = 13
End If
End Sub

【30840】Re:Addressの除外範囲の設定
発言  かみちゃん  - 05/11/5(土) 21:37 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Subtotalでの集計で、例えActiveCellであっても、集計をしない
>セルとしてA1〜A4を設定したい

どういったことがしたいのか今ひとつわかりません。

>また、Address(0,0)の役割?というのかその意味合い

Addressプロパティのヘルプを確認いただければいいのですが、
以下のコードを実行してみてください。
Sub Macro1()
 MsgBox "Address(0,0)の場合 " & ActiveCell.Address(0,0)
 MsgBox "Address(1,0)の場合 " & ActiveCell.Address(1,0)
 MsgBox "Address(0,1)の場合 " & ActiveCell.Address(0,1)
 MsgBox "Address(1,1)の場合 " & ActiveCell.Address(1,1)
End Sub

【30841】Re:Addressの除外範囲の設定
回答  MOON  - 05/11/5(土) 21:54 -

引用なし
パスワード
   ▼ぽんかん さん:
こんにちは。
A1:A4を除外範囲に設定するには、
If ActiveCell.Address <> "$A$4" Then
の部分を
If Intersect(ActiveCell, Range("A1:A4")) Is Nothing Then
とすれば良いでしょう。

Address(0,0)はこの場合、
Range("B65536").End(xlUp).Offset(1)
が参照しているセルアドレスを返します。
Address(1,1)またはAddress(True,True)とすると、
$マークの付いた絶対参照で返します。
詳しくは、ヘルプでどうぞ。

【30843】ActiveCellの計算除外範囲を広げる
質問  ぽんかん  - 05/11/5(土) 22:13 -

引用なし
パスワード
   ▼かみちゃん さん:

早速ご返答ありがとうございます。
Address(0,0)の意味が良く分かりました。
となりますと、一列目のコードは
If ActiveCell.Address <> "$A$4" Then で
$A$4とする必要がなく、A4でよいという事ですね。

>>Subtotalでの集計で、例えActiveCellであっても、集計をしない
>>セルとしてA1〜A4を設定したい

>どういったことがしたいのか今ひとつわかりません。

A4を選択して、マクロを動作させても、このセルには合計が入りません。

この合計の入らないせるをA1、A2、A3、A4まで4セルに設定したいのですが、
その方法を教えていただきく、お願いいたしました。

【30844】Re:ActiveCellの計算除外範囲を広げる
発言  かみちゃん  - 05/11/5(土) 22:20 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>Address(0,0)の意味が良く分かりました。
>となりますと、一列目のコードは
>If ActiveCell.Address <> "$A$4" Then で
>$A$4とする必要がなく、A4でよいという事ですね。

違います。再度以下のコードでどうなるか確認してみてください。

Sub Macro1()
 MsgBox "Addressの場合 " & ActiveCell.Address
 MsgBox "Address(0,0)の場合 " & ActiveCell.Address(0,0)
 MsgBox "Address(1,0)の場合 " & ActiveCell.Address(1,0)
 MsgBox "Address(0,1)の場合 " & ActiveCell.Address(0,1)
 MsgBox "Address(1,1)の場合 " & ActiveCell.Address(1,1)
End Sub

>>どういったことがしたいのか今ひとつわかりません。
>
>A4を選択して、マクロを動作させても、このセルには合計が入りません。
>
>この合計の入らないせるをA1、A2、A3、A4まで4セルに設定したい

アクティブセルがA4である限り、数式は設定されません。
「合計の入らないセルをA1、A2、A3、A4まで4セルに設定したい」とはA1、A2、
A3、A4には、数式を設定したくないということでしたら、MONNさんのコメント
が参考になるかと思います。

【30845】Re:Addressの除外範囲の設定
お礼  ぽんかん  - 05/11/5(土) 22:21 -

引用なし
パスワード
   ▼MOON さん:

今晩は、ありがとうございました。
よく分かりました。結果が出ました。
分かりづらい質問でご迷惑をおかけしたかと思いますが、
今後とも宜しくお願いします。

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