Excel VBA質問箱 IV

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

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


9670 / 13646 ツリー ←次へ | 前へ→

【26128】RefEditのプロパティ? Ryoshi 05/6/24(金) 10:06 質問[未読]
【26129】Re:RefEditのプロパティ? 角田 05/6/24(金) 10:57 回答[未読]
【26130】Re:RefEditのプロパティ? Ryoshi 05/6/24(金) 11:22 お礼[未読]
【26131】Re:RefEditのプロパティ? りん 05/6/24(金) 11:26 発言[未読]
【26133】Re:RefEditのプロパティ? Ryoshi 05/6/24(金) 12:02 お礼[未読]

【26128】RefEditのプロパティ?
質問  Ryoshi  - 05/6/24(金) 10:06 -

引用なし
パスワード
   はじめまして。
RefEditを使って、セル範囲を指定したいのですが、
デフォルトでは、取得した値が、Sheets1!$A$1:$D$3のような形になると思います。
この値を、A1:D3のような形で取得するようなプロパティとかってあるのでしょうか?
教えて頂ければと思います。

【26129】Re:RefEditのプロパティ?
回答  角田 WEB  - 05/6/24(金) 10:57 -

引用なし
パスワード
   こんにちは。
>RefEditを使って、セル範囲を指定したいのですが、
>デフォルトでは、取得した値が、Sheets1!$A$1:$D$3のような形になると思います。
>この値を、A1:D3のような形で取得するようなプロパティとかってあるのでしょうか?
ありません。

ただ、いずれにしてもValue内容(String型)をRangeオブジェクトに変換して
おかなければセル参照には使えませんから、その後でAddressプロパティを
使って編集すれば良いです。

Dim MyRng As Range
Set MyRng = Nothing
On Error Resume Next
Set MyRng = Application.Evaluate(RefEdit1.Value)
On Error GoTo 0
If (MyRng Is Nothing) Then
 MsgBox "セル範囲を選択して下さい"
Else
 MsgBox "選択セル= " & MyRng.Address(False,False,xlA1)
End if

【26130】Re:RefEditのプロパティ?
お礼  Ryoshi  - 05/6/24(金) 11:22 -

引用なし
パスワード
   ありがとうございました。
"!"以下を切り取る方法は考えたのですが、スマートな方法が思いつきませんでした。
悩ましかったので、非常に助かりました。

▼角田 さん:
>こんにちは。
>>RefEditを使って、セル範囲を指定したいのですが、
>>デフォルトでは、取得した値が、Sheets1!$A$1:$D$3のような形になると思います。
>>この値を、A1:D3のような形で取得するようなプロパティとかってあるのでしょうか?
>ありません。
>
>ただ、いずれにしてもValue内容(String型)をRangeオブジェクトに変換して
>おかなければセル参照には使えませんから、その後でAddressプロパティを
>使って編集すれば良いです。
>
>Dim MyRng As Range
>Set MyRng = Nothing
>On Error Resume Next
>Set MyRng = Application.Evaluate(RefEdit1.Value)
>On Error GoTo 0
>If (MyRng Is Nothing) Then
> MsgBox "セル範囲を選択して下さい"
>Else
> MsgBox "選択セル= " & MyRng.Address(False,False,xlA1)
>End if

【26131】Re:RefEditのプロパティ?
発言  りん E-MAIL  - 05/6/24(金) 11:26 -

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

>>RefEditを使って、セル範囲を指定したいのですが、
>>デフォルトでは、取得した値が、Sheets1!$A$1:$D$3のような形になると思います。
>>この値を、A1:D3のような形で取得するようなプロパティとかってあるのでしょうか?
>ありません。
>ただ、いずれにしてもValue内容(String型)をRangeオブジェクトに変換して
>おかなければセル参照には使えませんから、その後でAddressプロパティを
>使って編集すれば良いです。

Application.InputBoxをRefEditの代用に使う方法もあります。
Sub test()
  Dim r1 As Range
  On Error Resume Next
  Set r1 = Application.InputBox("", "範囲選択", Type:=8)
  On Error GoTo 0
  If r1 Is Nothing Then
   MsgBox "キャンセル", vbExclamation
  Else
   MsgBox r1.Address, vbInformation, r1.Parent.Name
  End If
End Sub

InputBoxメソッドはフォームのコマンドボタンと組み合わせて、テキストボックスに値を入れたり、Rangeオブジェクトとして取得できるので、意外と便利です。
ご参考までに。
※書き込んだらすでに解決していたのでぶらさげ位置を変えさせてもらいました。

【26133】Re:RefEditのプロパティ?
お礼  Ryoshi  - 05/6/24(金) 12:02 -

引用なし
パスワード
   重ねてありがとうございます。
こういう方法もあるのですね。私には思いつきません。
助かりました。

▼りん さん:
>こんにちわ。
>
>>>RefEditを使って、セル範囲を指定したいのですが、
>>>デフォルトでは、取得した値が、Sheets1!$A$1:$D$3のような形になると思います。
>>>この値を、A1:D3のような形で取得するようなプロパティとかってあるのでしょうか?
>>ありません。
>>ただ、いずれにしてもValue内容(String型)をRangeオブジェクトに変換して
>>おかなければセル参照には使えませんから、その後でAddressプロパティを
>>使って編集すれば良いです。
>
>Application.InputBoxをRefEditの代用に使う方法もあります。
>Sub test()
>  Dim r1 As Range
>  On Error Resume Next
>  Set r1 = Application.InputBox("", "範囲選択", Type:=8)
>  On Error GoTo 0
>  If r1 Is Nothing Then
>   MsgBox "キャンセル", vbExclamation
>  Else
>   MsgBox r1.Address, vbInformation, r1.Parent.Name
>  End If
>End Sub
>
>InputBoxメソッドはフォームのコマンドボタンと組み合わせて、テキストボックスに値を入れたり、Rangeオブジェクトとして取得できるので、意外と便利です。
>ご参考までに。
>※書き込んだらすでに解決していたのでぶらさげ位置を変えさせてもらいました。

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