Excel VBA質問箱 IV

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

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


5518 / 13645 ツリー ←次へ | 前へ→

【50320】シート選択ダイアログ 太郎 07/7/19(木) 14:58 質問[未読]
【50328】Re:シート選択ダイアログ Ned 07/7/19(木) 19:18 発言[未読]
【50329】Re:シート選択ダイアログ 太郎 07/7/19(木) 19:28 発言[未読]
【50331】Re:シート選択ダイアログ Ned 07/7/19(木) 19:59 発言[未読]
【50334】Re:シート選択ダイアログ 太郎 07/7/20(金) 9:25 発言[未読]
【50344】Re:シート選択ダイアログ Ned 07/7/20(金) 12:42 発言[未読]
【50345】Re:シート選択ダイアログ Jaka 07/7/20(金) 12:47 発言[未読]
【50348】解決してたのかな? Jaka 07/7/20(金) 14:02 発言[未読]

【50320】シート選択ダイアログ
質問  太郎  - 07/7/19(木) 14:58 -

引用なし
パスワード
   内容が「他」になっていたので「質」にします。


はじめまして、タローです。

質問です。
下記のコードは使用例みたいなところから持ってきたのですが、大体のことしか理解できません。
シート選択ダイアログが表示されて、選択するというものです。

しかし正しくそのシートが選択されないです。

なので、おねがいなのですが下記のコードに何をしているかコメントして頂けないでしょうか?またはいいコードがありましたら教えてください。

よろしくお願いします。  

Dim ShBackup As Worksheet          '
  Application.ScreenUpdating = False     '
  Set ShBackup = ActiveSheet         '
  With CommandBars.Add(Temporary:=True)    '
    .Controls.Add(ID:=957).Execute     '
    .Delete                 '
  End With                  '
  ' Return                  '
  If Not ActiveSheet Is ShBackup Then     '
    Set ShowSelectSheetDialog = ActiveSheet '
  End If                   '
  ShBackup.Select               '
  Application.ScreenUpdating = True      '

【50328】Re:シート選択ダイアログ
発言  Ned  - 07/7/19(木) 19:18 -

引用なし
パスワード
   ▼太郎 さん:
こんにちは。
マルチ先でリンクしたページは見て頂けましたか?
そこの内容を見ても理解できなかったでしょうか?

もっとも、目的のシートを選択するだけでしたら、
Sub test()
  CommandBars("Workbook tabs").ShowPopup
End Sub
...でいいような気がします。

【50329】Re:シート選択ダイアログ
発言  太郎  - 07/7/19(木) 19:28 -

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

自分は最悪なことをしたのに親切にありがとうございます。

リンク先ではイマイチわかりませんでした。


Ned さんが言ってた CommandBars("Workbook tabs").ShowPopup
で、かなりコンパクトになりましたしいいと思いました。

できることなら、シートを選択して、そのシートを開きたいのですがどのようにしたらよいのでしょうか?

選択したシートで作業したいもので...

よろしくお願いします。

【50331】Re:シート選択ダイアログ
発言  Ned  - 07/7/19(木) 19:59 -

引用なし
パスワード
   ▼太郎 さん:
すみません^ ^;
>できることなら、シートを選択して、そのシートを開きたいのですがどのようにしたらよいのでしょうか?
この意味がわかりません。
先のSub test()を実行して、シート名を選んでも、
選んだシートに移動しないということでしょうか?

【50334】Re:シート選択ダイアログ
発言  太郎  - 07/7/20(金) 9:25 -

引用なし
パスワード
   ▼Ned さん:
Sub test()
  CommandBars("Workbook tabs").ShowPopup
End Sub
だけを使用すればできるのですが、この処理を途中に入れたいがために
  CommandBars("Workbook tabs").ShowPopup のみ使用しました。

自分は初心者なのであまりうまくは言えませんが、途中にこの処理を入れたい場合は   CommandBars("Workbook tabs").ShowPopup の前後はどのような記述をしたらといのでしょうか?

よろしくお願いします。

【50344】Re:シート選択ダイアログ
発言  Ned  - 07/7/20(金) 12:42 -

引用なし
パスワード
   ▼太郎 さん:
初心者であっても、やろうとしている事を日本語で書くことはできるでしょう?
>途中にこの処理を入れたい場合は
>...前後はどのような記述をしたらといのでしょうか?
それはユーザーにシート選択を促すものですから、
前後に何をやろうとしてて、どのタイミングで入れたいか、はっきりしないと

CommandBars("Workbook tabs").ShowPopup
ActiveSheet.Range("A1").Select
ActiveSheet.Range("A1").Value = "移動しました"

などと無責任な的を得てないかもしれないレスをする事になってしまいます。

もしくは、
例えばSheet1のA1セルに何か入れておいてください。

Sub test1()
  Sheets("sheet1").Range("A1").Copy
  CommandBars("Workbook tabs").ShowPopup
  ActiveSheet.Paste Destination:=Range("A1")
  Application.CutCopyMode = False
End Sub

Sub test2()
  Dim ws As Worksheet
  Dim ws1 As Worksheet
  
  Set ws = ActiveSheet
  CommandBars("Workbook tabs").ShowPopup
  Set ws1 = ActiveSheet
  ws.Activate
  Sheets("sheet1").Range("A1").Copy Destination:=ws1.Range("A1")

  Set ws = Nothing
  Set ws1 = Nothing
End Sub

どちらも同じような結果が得られます。
『やりたいこと』によってアドバイスも変わってきます。
それがわからないとあてずっぽうでレスをする事になります。

内容によっては
CommandBars("Workbook tabs").ShowPopup
でユーザーに選択させる必要がない事かもしれません。
ご一考を。

【50345】Re:シート選択ダイアログ
発言  Jaka  - 07/7/20(金) 12:47 -

引用なし
パスワード
   こんな方法も。
htt p://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=45328;id=excel

【50348】解決してたのかな?
発言  Jaka  - 07/7/20(金) 14:02 -

引用なし
パスワード
   htt p://hpcgi1.nifty.com/kenzo30/b_cbbs/cbbs.cgi?mode=al2&namber=41180&rev=&no=0&P=ad27h

htt p://oshiete1.goo.ne.jp/qa3042408.html

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