Excel VBA質問箱 IV

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

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


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

【43550】データの範囲指定に関して さほ 06/10/19(木) 10:22 質問[未読]
【43554】Re:データの範囲指定に関して へっぽこ 06/10/19(木) 10:36 発言[未読]
【43576】Re:データの範囲指定に関して さほ 06/10/19(木) 13:57 質問[未読]
【43588】Re:データの範囲指定に関して Jaka 06/10/19(木) 15:16 発言[未読]
【43593】Re:データの範囲指定に関して Jaka 06/10/19(木) 16:05 発言[未読]
【43591】Re:データの範囲指定に関して へっぽこ 06/10/19(木) 15:29 発言[未読]
【43589】Re:データの範囲指定に関して choo 06/10/19(木) 15:25 発言[未読]

【43550】データの範囲指定に関して
質問  さほ  - 06/10/19(木) 10:22 -

引用なし
パスワード
   教えて下さい。

Rangeで範囲指定をしたいのですが、その範囲がデータによって
固定ではありません。

不定の範囲を指定するにはどのような記述をしたら良いでしょうか。。。

教えて下さい。

【43554】Re:データの範囲指定に関して
発言  へっぽこ  - 06/10/19(木) 10:36 -

引用なし
パスワード
   こんにちは。

例えば下の方のセルでCtrl+↑と押すと最後に入力されているセルに位置付きます。

A65536セルでCtrl+↑と操作したとしてVBAで書くとこうなります。

Range("A65536").End(xlUp).Select


他にもCtrl+*(キーボードによってはCtrl+Shift+*)というのもあります。
ペイントで塗りつぶしを選んだときみたいに、セルが隣接しているが入力されて
いる場合、そこも一緒に選択してくれます。

A1セルでCtrl+*と操作したとしてVBAで書くとこうなります。

Range("A1").CurrentRegion.Select

他にもジャンプ機能とかをVBAで使うこともできます。

結局は手作業を「マクロの記録」でVBA化してそれを見ながらマクロを組み立てて行くので
エクセルの機能をいろいろ知っておかないとマクロを作るのは厳しいと思います。

【43576】Re:データの範囲指定に関して
質問  さほ  - 06/10/19(木) 13:57 -

引用なし
パスワード
   申し訳ありません。

教えて頂いたものでは上手くいきません。

範囲自体を変数で指定する事等はできないのでしょうか??

初心者ですみません。 教えて下さい。


▼へっぽこ さん:
>こんにちは。
>
>例えば下の方のセルでCtrl+↑と押すと最後に入力されているセルに位置付きます。
>
>A65536セルでCtrl+↑と操作したとしてVBAで書くとこうなります。
>
>Range("A65536").End(xlUp).Select
>
>
>他にもCtrl+*(キーボードによってはCtrl+Shift+*)というのもあります。
>ペイントで塗りつぶしを選んだときみたいに、セルが隣接しているが入力されて
>いる場合、そこも一緒に選択してくれます。
>
>A1セルでCtrl+*と操作したとしてVBAで書くとこうなります。
>
>Range("A1").CurrentRegion.Select
>
>他にもジャンプ機能とかをVBAで使うこともできます。
>
>結局は手作業を「マクロの記録」でVBA化してそれを見ながらマクロを組み立てて行くので
>エクセルの機能をいろいろ知っておかないとマクロを作るのは厳しいと思います。

【43588】Re:データの範囲指定に関して
発言  Jaka  - 06/10/19(木) 15:16 -

引用なし
パスワード
   >Rangeで範囲指定をしたいのですが、その範囲がデータによって
>固定ではありません。
そのデータ範囲というのが、状況によって指定の仕方が変わるので一概にこれとは言えません。
実際にデータ範囲として取得したい領域は、データの状態やらどの状況のものを最終とするかで、状況に合わせて使い分けなければなりませんし.....。
う〜ん、いまいちうまく説明できない。

たとえば、
ActiveSheet.UsedRange.Select
使った形跡のあるセルを対称にしているから、書式を変更したセルも対象になります。
また、元に戻しても使った経歴があると対象になります。

「最後のセル」の位置を修正する方法
http://support.microsoft.com/default.aspx?scid=kb;ja;JP405492

【43589】Re:データの範囲指定に関して
発言  choo  - 06/10/19(木) 15:25 -

引用なし
パスワード
   >Rangeで範囲指定をしたいのですが、その範囲がデータによって
>固定ではありません。
>不定の範囲を指定するにはどのような記述をしたら良いでしょうか。。。

Setステートメントでその範囲を記述するだけでしょう。
その不定の範囲とは?
言葉でその範囲を説明してもらわないと、回答者は超能力ではありません。

【43591】Re:データの範囲指定に関して
発言  へっぽこ  - 06/10/19(木) 15:29 -

引用なし
パスワード
   >範囲自体を変数で指定する事等はできないのでしょうか??

Sub 適当な範囲に適当に着色()
  Dim 色 As Long
  Dim 行1 As Long
  Dim 列1 As Long
  Dim 行2 As Long
  Dim 列2 As Long
  
  For 色 = 0 To 10
    Randomize
    
    行1 = Int(Rnd() * 20) + 1
    列1 = Int(Rnd() * 20) + 1
    行2 = Int(Rnd() * 20) + 1
    列2 = Int(Rnd() * 20) + 1
    
    Range(Cells(行1, 列1), Cells(行2, 列2)).Interior.ColorIndex = 色
  Next
End Sub

こういうこと?

【43593】Re:データの範囲指定に関して
発言  Jaka  - 06/10/19(木) 16:05 -

引用なし
パスワード
   もしかしてこれ?

Dim MyRg As Range
On Error Resume Next
Set MyRg = Application.InputBox(Prompt:="セルを選択して下さい。", _
          Title:="セル選択", Default:=ActiveCell.Address, Type:=8)
On Error GoTo 0
If MyRg Is Nothing Then
  MsgBox "キャンセル"
Else
  MyRg.Value = "あ"
End If

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