Excel VBA質問箱 IV

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

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


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

【7856】クリックしたシートの名前の取得方法 03/9/20(土) 20:22 質問
【7857】Re:クリックしたシートの名前の取得方法 INA 03/9/21(日) 0:06 回答
【7861】Re:クリックしたシートの名前の取得方法 03/9/21(日) 0:40 質問
【7864】Re:クリックしたシートの名前の取得方法 INA 03/9/21(日) 1:09 回答
【7866】Re:クリックしたシートの名前の取得方法 03/9/21(日) 8:19 お礼
【7865】Re:クリックしたシートの名前の取得方法 Jカーター 03/9/21(日) 7:09 回答
【7867】Re:クリックしたシートの名前の取得方法 03/9/21(日) 8:24 お礼

【7856】クリックしたシートの名前の取得方法
質問   E-MAIL  - 03/9/20(土) 20:22 -

引用なし
パスワード
   1.
分析用チャートを作成しています。
inputboxでデータの先頭レンジをクリックすることで、
データ範囲を求めています。
inputboxの後に、シート名等の保存をして、処理を継続したいのですが、
うまくできません。
(activesheet.nameではうまくいきませんでした。)

2.
book open時に、「他のファイルに自動リンク・・・」という、
メッセーが出ます。自動リンクの場所を調べる方法があれば、
教えていただけないでしょうか。

3.
配列を引数で渡したのですが、方法があるのでしょうか。
意味がないのでしょうか。

是非、ご教授いただければ幸いです。
よろしくお願いいたします。  舘

【7857】Re:クリックしたシートの名前の取得方法
回答  INA  - 03/9/21(日) 0:06 -

引用なし
パスワード
   >inputboxの後に、シート名等の保存をして、処理を継続したいのですが、
>うまくできません。
>(activesheet.nameではうまくいきませんでした。)
どのように上手くいかなかったのでしょうか?
.Name で取得できるはずですが・・?

>book open時に、「他のファイルに自動リンク・・・」という、
>メッセーが出ます。自動リンクの場所を調べる方法があれば、
>教えていただけないでしょうか。
どのような時に調べる方法のことですか?
マクロで調べる方法と言うことでしょうか?
通常はセルの値を、リンク先ファイル名で検索します。

>配列を引数で渡したのですが、方法があるのでしょうか。
>意味がないのでしょうか。
ご質問の意味がよく分かりません。

【7861】Re:クリックしたシートの名前の取得方法
質問   E-MAIL  - 03/9/21(日) 0:40 -

引用なし
パスワード
   >inputboxの後に、シート名等の保存をして、処理を継続したいのですが、
>うまくできません。
>(activesheet.nameではうまくいきませんでした。)
どのように上手くいかなかったのでしょうか?
.Name で取得できるはずですが・・?

対応ありがとうございます。
 状況は、sheet1を開いていて、
 inputboxのセル取得で、他のシート、例えばsheet2のレンジa1をクリックし、
 okを押した後、
 そのシート名「sheet2」を取得したいのですが、
 activesheet.nameは「sheet1」のままです。

 あまり経験がなく、わかり辛い質問で申し訳ありませんが、
 よろしくお願いいたします。

【7864】Re:クリックしたシートの名前の取得方法
回答  INA  - 03/9/21(日) 1:09 -

引用なし
パスワード
   InputBoxメソッドのType:=8の戻り値は、Rangeオブジェクトですので、
以下のようにしてみて下さい。

Dim myRange As Range

 Set myRange = Application.InputBox("セルを選択", Type:=8)
  
 MsgBox myRange.Worksheet.Name

【7865】Re:クリックしたシートの名前の取得方法
回答  Jカーター  - 03/9/21(日) 7:09 -

引用なし
パスワード
   こんにちは。
>1
Sub test()
  Dim R As Range
  On Error Resume Next
  Set R = Application.InputBox("クリック", Type:=8)
  On Error GoTo 0
  If Not R Is Nothing Then
    MsgBox R.Parent.Name
  End If
End Sub
でしょうか?(キャンセルに対応してます)

>2はパスです。
>3
あまり的確な例ではないかもしれませんが

Sub testF()
  Dim A() As Variant
  A = Array("1A", "1B", "AA", "39A", "VV")
  MsgBox vTest(A)
End Sub
Function vTest(v() As Variant) As Long
  Dim c As Variant
  For Each c In v
    If c Like "*A" Then
      vTest = vTest + 1
    End If
  Next c
End Function
*********************************************************************
的はずれでしたらすいません。

【7866】Re:クリックしたシートの名前の取得方法
お礼   E-MAIL  - 03/9/21(日) 8:19 -

引用なし
パスワード
   ▼INA さん:
>InputBoxメソッドのType:=8の戻り値は、Rangeオブジェクトですので、
>以下のようにしてみて下さい。
>
>Dim myRange As Range
>
> Set myRange = Application.InputBox("セルを選択", Type:=8)
>  
> MsgBox myRange.Worksheet.Name

うまくできました。深謝。
いろいろ調べて見ましたが分からず困っていました。
Rangeオブジェクトとの知識がありませんでした。
大変助かりました。
ありがとうございました。

【7867】Re:クリックしたシートの名前の取得方法
お礼    - 03/9/21(日) 8:24 -

引用なし
パスワード
   ▼Jカーター さん:
>こんにちは。
>>1
>Sub test()
>  Dim R As Range
>  On Error Resume Next
>  Set R = Application.InputBox("クリック", Type:=8)
>  On Error GoTo 0
>  If Not R Is Nothing Then
>    MsgBox R.Parent.Name
>  End If
>End Sub
>でしょうか?(キャンセルに対応してます)
>
>>2はパスです。
>>3
>あまり的確な例ではないかもしれませんが
>
>Sub testF()
>  Dim A() As Variant
>  A = Array("1A", "1B", "AA", "39A", "VV")
>  MsgBox vTest(A)
>End Sub
>Function vTest(v() As Variant) As Long
>  Dim c As Variant
>  For Each c In v
>    If c Like "*A" Then
>      vTest = vTest + 1
>    End If
>  Next c
>End Function
>*********************************************************************
>的はずれでしたらすいません。

うまくできました。感謝いたします。
長きにわたり悩んでいました。
3.につきましても、
丁寧な例をありがとうございます。
使用方法が分かりました。コーディングが整理できます。
本当にありがとうございました。

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