Excel VBA質問箱 IV

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

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


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

【7402】シートの名前を取り出す 03/9/4(木) 11:01 質問
【7407】Re:シートの名前を取り出す INA 03/9/4(木) 12:28 回答
【7418】Re:シートの名前を取り出す 03/9/4(木) 14:57 質問
【7419】Re:シートの名前を取り出す INA 03/9/4(木) 15:01 回答
【7421】Re:シートの名前を取り出す 03/9/4(木) 16:13 質問
【7423】Re:シートの名前を取り出す INA 03/9/4(木) 16:40 回答
【7432】Re:シートの名前を取り出す ゆと 03/9/4(木) 23:03 発言
【7451】Re:シートの名前を取り出す 03/9/5(金) 10:44 発言
【7450】Re:シートの名前を取り出す 03/9/5(金) 10:43 質問
【7453】Re:シートの名前を取り出す INA 03/9/5(金) 10:57 回答
【7486】Re:シートの名前を取り出す 03/9/5(金) 16:54 質問
【7487】Re:シートの名前を取り出す INA 03/9/5(金) 16:59 発言
【7488】Re:シートの名前を取り出す Jカーター 03/9/5(金) 17:01 回答
【7489】Re:シートの名前を取り出す INA 03/9/5(金) 17:05 回答
【7491】Re:シートの名前を取り出す 03/9/5(金) 17:13 質問
【7493】Re:シートの名前を取り出す INA 03/9/5(金) 17:17 発言
【7496】Re:シートの名前を取り出す 03/9/5(金) 17:21 質問
【7499】Re:シートの名前を取り出す 03/9/5(金) 17:49 発言
【7605】Re:シートの名前を取り出す 03/9/9(火) 15:40 お礼

【7402】シートの名前を取り出す
質問    - 03/9/4(木) 11:01 -

引用なし
パスワード
   よろしくお願いします。

家計計算シートを作成しています。

シートは食費12か月分(12枚)、光熱費12か月分(12枚)
あります。
アクティブシートのあるボタンを押すと、前月のシートへ移るという
ことをやりたいのです。
例えばシート「食費9」の中のあるボタンを押すと「食費8」というシートへ移る。
アクティブシートのA1にはその月が入っています。例えば9月なら「9」。
その9−1で前月を割り出し、前月のシートを出したいのです。

24枚あるシートの中から前月のシートを割り出す方法を教えてください。
シートのネーミングルールは「食費9」「光熱費9」といったかんじです。

【7407】Re:シートの名前を取り出す
回答  INA  - 03/9/4(木) 12:28 -

引用なし
パスワード
   こんな感じかな?

Private Sub CommandButton1_Click()
  Call shtsel
End Sub

−−−−−−−−−−−−−−−−−−
<標準M>
Public Sub shtsel()
Dim ShtNo As String

  If Left(ActiveSheet.Name, 1) = "食" Then
    ShtNo = CInt(Mid(ActiveSheet.Name, 3))
    
    If ShtNo = 1 Then
      ShtNo = 12
    Else
      ShtNo = ShtNo - 1
    End If
    
    Worksheets("食費" & ShtNo).Select
  
  ElseIf Left(ActiveSheet.Name, 1) = "光" Then
    ShtNo = CInt(Mid(ActiveSheet.Name, 4))
    
    If ShtNo = 1 Then
      ShtNo = 12
    Else
      ShtNo = ShtNo - 1
    End If
    
    Worksheets("光熱費" & ShtNo).Select
  
  End If

End Sub

【7418】Re:シートの名前を取り出す
質問    - 03/9/4(木) 14:57 -

引用なし
パスワード
   ▼INA さん ありがとうございます。

   Worksheets("食費" & ShtNo).Select
→ここで、WorksheetsクラスのSlectメソッドが失敗しました。
と出てきてしまいます。

どうしたらよいでしょうか。

【7419】Re:シートの名前を取り出す
回答  INA  - 03/9/4(木) 15:01 -

引用なし
パスワード
   シート名はあっていますか?
シート上のコマンドボタンから実行していますか?

【7421】Re:シートの名前を取り出す
質問    - 03/9/4(木) 16:13 -

引用なし
パスワード
   ▼INA さん: ありがとうございます。
>シート名はあっていますか?
あっています。

>シート上のコマンドボタンから実行していますか?
実行しています・・・。

【7423】Re:シートの名前を取り出す
回答  INA  - 03/9/4(木) 16:40 -

引用なし
パスワード
   Select → Activate として、さらにブックも Activate しておいたらどうでしょうか?

ThisWorkbook.Activate
Worksheets("食費" & ShtNo).Activate

 
ThisWorkbook.Activate
Worksheets("光熱費" & ShtNo).Activate

【7432】Re:シートの名前を取り出す
発言  ゆと  - 03/9/4(木) 23:03 -

引用なし
パスワード
   INA さん、Kさんこんばんは。
横から失礼いたします。

シート名の数字が全角になっているってことはないですか?
前に同じようなことで悩んだような気がしたので。
思いつきの発言なので的を外していたら、すみません。

【7450】Re:シートの名前を取り出す
質問    - 03/9/5(金) 10:43 -

引用なし
パスワード
   ▼INA さん:
Activateにしてみました。
そうすると、エラーメッセージは出ませんが、シートが前月に移行しません。

デバッグでみてみると、ShtNoは前月の数字が入っているので変わるはずなのですが・・・。

シートの名前(数字部分)も半角になっています。
>Select → Activate として、さらにブックも Activate しておいたらどうでしょうか?

>ThisWorkbook.Activate
>Worksheets("食費" & ShtNo).Activate
>
> 
>ThisWorkbook.Activate
>Worksheets("光熱費" & ShtNo).Activate

【7451】Re:シートの名前を取り出す
発言    - 03/9/5(金) 10:44 -

引用なし
パスワード
   ▼ゆと さん:ご助言ありがとうございます。

シート名の数字は半角になっています。
私も以前全角にしていて悩んだことがあります。

>INA さん、Kさんこんばんは。
>横から失礼いたします。
>
>シート名の数字が全角になっているってことはないですか?
>前に同じようなことで悩んだような気がしたので。
>思いつきの発言なので的を外していたら、すみません。

【7453】Re:シートの名前を取り出す
回答  INA  - 03/9/5(金) 10:57 -

引用なし
パスワード
   ThisWorkbook.Activate
Worksheets("食費" & ShtNo).select
 
ThisWorkbook.Activate
Worksheets("光熱費" & ShtNo).select

にしてはどうでしょうか?
こういうときはいつも、パソコンが目の前にあれば・・と思いますね。

【7486】Re:シートの名前を取り出す
質問    - 03/9/5(金) 16:54 -

引用なし
パスワード
   ▼INA さん:ありがとうございます。

> ThisWorkbook.Activate
> Worksheets("食費" & ShtNo).select
ここで、WorksheetsクラスのSlectメソッドが失敗しました。
と出てきてしまいます。

【7487】Re:シートの名前を取り出す
発言  INA E-MAIL  - 03/9/5(金) 16:59 -

引用なし
パスワード
   ▼K さん:
もし問題ないようでしたら、そのファイルを検証したいので、
メールで送って頂けませんか?

【7488】Re:シートの名前を取り出す
回答  Jカーター  - 03/9/5(金) 17:01 -

引用なし
パスワード
   横レスすいません。
全くの想像ですが
Excel97でシートのボタンで実行しいるとか?
でしたら
コードの最初の方に
ActiveCell.Activate
と書いてみてはどうでしょう?

違ったらすいません。

【7489】Re:シートの名前を取り出す
回答  INA  - 03/9/5(金) 17:05 -

引用なし
パスワード
   確かに環境を聞いていませんでしたね。
OSとExcelのバージョンは何でしょうか?
マクロの実行は、コントロールツールボックスのコマンドボタンから
行っていますでしょうか?

【7491】Re:シートの名前を取り出す
質問    - 03/9/5(金) 17:13 -

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

>OSとExcelのバージョンは何でしょうか?
OS WIN2000
EXCEL OFFICE2000
です。

>マクロの実行は、コントロールツールボックスのコマンドボタンから
>行っていますでしょうか?

行っています。

【7493】Re:シートの名前を取り出す
発言  INA E-MAIL  - 03/9/5(金) 17:17 -

引用なし
パスワード
   1時間以内でしたら、こちらにメール下さい。

【7496】Re:シートの名前を取り出す
質問    - 03/9/5(金) 17:21 -

引用なし
パスワード
   ▼INA さん:
ありがとうございます。よろしくお願いいたします。


>1時間以内でしたら、こちらにメール下さい。

【7499】Re:シートの名前を取り出す
発言    - 03/9/5(金) 17:49 -

引用なし
パスワード
   メールを送りました。

【7605】Re:シートの名前を取り出す
お礼    - 03/9/9(火) 15:40 -

引用なし
パスワード
   解決しました。

私の場合、1枚しかシートが出ておらず(例えば9月の食費を入力している時は「食費9」しか出ていない)
あとのシートは表示されていなかったためエラーが出てしまいました。

シートを表示する、非表示にする、の命令を入れたらうまくいきました。

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