Excel VBA質問箱 IV

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

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


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

【38854】Sheets("*").Selectについて 質問者 06/6/12(月) 20:54 質問[未読]
【38855】Re:Sheets("*").Selectについて かみちゃん 06/6/12(月) 21:13 回答[未読]
【38856】Re:Sheets("*").Selectについて 質問者 06/6/12(月) 21:19 お礼[未読]

【38854】Sheets("*").Selectについて
質問  質問者  - 06/6/12(月) 20:54 -

引用なし
パスワード
   質問です。
Openメソッドでファイルを開いて、シート名「元データ」を選択して
セルをコピーしようとしたのですが、ファイルによって
シート名が「生データ」になっている場合があります。

エクセルのシートを選択する場合、指定したシート名が無いと
エラーが発生するので、プログラムを作成する場合、
On Error Gotoを使用して回避しているので片方のシート名しか入力出来ません。

シートが両方ある場合、「元データ」を優先で選択し、片方しかない場合は
そのどちらかを選択出来る方法は有りますか?

【38855】Re:Sheets("*").Selectについて
回答  かみちゃん  - 06/6/12(月) 21:13 -

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

>シートが両方ある場合、「元データ」を優先で選択し、片方しかない場合は
>そのどちらかを選択出来る方法は有りますか?

私の場合、以下のような感じにしています。

Sub Macro1()
 'シート名が存在するかどうか
 If Not ChkSheet("元データ") Then
  'シート名が存在するかどうか
  If Not ChkSheet("生データ") Then
   MsgBox "「元データ」も「生データ」シートもありません"
  Else
   Sheets("生データ").Select
  End If
 Else
  Sheets("元データ").Select
 End If
End Sub

'シート名存在チェック関数
Function ChkSheet(strWS As String) As Boolean
 Dim ws As Worksheet
 
 ChkSheet = False
 For Each ws In Worksheets
  If ws.Name = strWS Then
   ChkSheet = True
   Exit For
  End If
 Next
End Function

【38856】Re:Sheets("*").Selectについて
お礼  質問者  - 06/6/12(月) 21:19 -

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

早速、こんな親切な回答ありがとうございます。
これで進むことが出来ます。

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