Excel VBA質問箱 IV

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

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


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

【10621】0にしかならない? み〜 04/2/3(火) 20:24 質問
【10623】Re:0にしかならない? ichinose 04/2/3(火) 21:12 回答
【10624】Re:0にしかならない? み〜 04/2/3(火) 22:06 お礼
【10625】Re:0にしかならない? ichinose 04/2/3(火) 22:43 発言
【10627】Re:0にしかならない? み〜 04/2/3(火) 23:02 お礼

【10621】0にしかならない?
質問  み〜  - 04/2/3(火) 20:24 -

引用なし
パスワード
   A列:職種
B列:新規
C列:氏名
D列:職員番号
E列:配属先
を記入している表(シート名は、一覧)があります。

(General)(Declarations)では、以下を宣言済みです
Dim TopGyo As Integer
Dim BotGyo As Integer
Dim NowGyo As Integer

この時、以下のTopGyo BotGyo NowGyo全部が0にしかならないのです。
IchiがA0になりエラーが出てしまいます。
原因はどこにあるのかヒントをいただけませんか?
よろしくおねがいします。

--------------------------------------
Private Sub Nyuryoku_Initialize()

  Worksheets("一覧").Select
  
  TopGyo = Worksheets("一覧").Range("A1").CurrentRegion.Row + 1
  BotGyo = Worksheets("一覧").Range("A1").CurrentRegion.Rows.Count
  
  NowGyo = TopGyo
  
  IchiHyoji
  
End Sub

--------------------------------------
Sub IchiHyoji()

  Dim Ichi As String
  
  Ichi = "A" & NowGyo
  職種.ControlSource = Ichi


  Label1.Caption = "全" & BotGyo - 1 & "件中 " & NowGyo - 1 & "件目"
  
End Sub

【10623】Re:0にしかならない?
回答  ichinose  - 04/2/3(火) 21:12 -

引用なし
パスワード
   ▼み〜 さん:
こんばんは。

>A列:職種
>B列:新規
>C列:氏名
>D列:職員番号
>E列:配属先
>を記入している表(シート名は、一覧)があります。
>
>(General)(Declarations)では、以下を宣言済みです
>Dim TopGyo As Integer
>Dim BotGyo As Integer
>Dim NowGyo As Integer
↑ここ、Dim---→Publicに替えてください。
で、いけると思いますが・・・。

>
>この時、以下のTopGyo BotGyo NowGyo全部が0にしかならないのです。
>IchiがA0になりエラーが出てしまいます。
>原因はどこにあるのかヒントをいただけませんか?
>よろしくおねがいします。
>


次回は、↓のコードがどこに書かれているかも教えて下さいね!!
たぶん、TopGyo 、 BotGyo、 NowGyoが宣言されているモジュールとは
違うモジュールに書かれているのでは・・と、思います。

とすると、
>--------------------------------------
>Private Sub Nyuryoku_Initialize()
>
>  Worksheets("一覧").Select
>  
>  TopGyo = Worksheets("一覧").Range("A1").CurrentRegion.Row + 1
>  BotGyo = Worksheets("一覧").Range("A1").CurrentRegion.Rows.Count
>  
>  NowGyo = TopGyo
>  
>  IchiHyoji
>  
>End Sub
>
>--------------------------------------
>Sub IchiHyoji()
>
>  Dim Ichi As String
>  
>  Ichi = "A" & NowGyo
>  職種.ControlSource = Ichi
>
>
>  Label1.Caption = "全" & BotGyo - 1 & "件中 " & NowGyo - 1 & "件目"
>  
>End Sub

【10624】Re:0にしかならない?
お礼  み〜  - 04/2/3(火) 22:06 -

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


DimってところをPublicにしてみましたが...
残念ながら同じ結果でした。

Private Sub Nyuryoku_Initialize()と、Sub IchiHyoji()とTopGyo,BotGyo,NowGyoの宣言は、同じところだと思います。
Nyuryokuというフォームに全部書いています。よくわかっていないのでひょっとして何かへんなこと言ってますか?

【10625】Re:0にしかならない?
発言  ichinose  - 04/2/3(火) 22:43 -

引用なし
パスワード
   ▼み〜 さん:
ははっ、これでOKだとばっかり思ってたもので、寝るところでした。


>
>DimってところをPublicにしてみましたが...
>残念ながら同じ結果でした。
>
>Private Sub Nyuryoku_Initialize()と、Sub IchiHyoji()とTopGyo,BotGyo,NowGyoの宣言は、同じところだと思います。
>Nyuryokuというフォームに全部書いています。よくわかっていないのでひょっとして何かへんなこと言ってますか?
Dimの宣言から、プロシジャーNyuryoku_Initialize、IchiHyojiが全て
Nyuryokuというユーザーフォームのモジュールに記述されているとしたら、
Publicにする必要はありません。

このプロシジャーNyuryoku_Initializeは、Initializeイベントのプロシジャーという
ことですね?
そうだとしたら、フォームが表示される前にNyuryoku_Initializeを実行しないはずなんですが、どこかで呼び出してるのかな?

とりあえず、以下のコードをNyuryokuというユーザーフォームのモジュールに
記述して確認して下さい。
'=================================================================
Dim TopGyo As Integer
Dim BotGyo As Integer
Dim NowGyo As Integer
'=================================================================
Private Sub UserForm_Initialize()
  Nyuryoku_Initialize
End Sub
'=================================================================
Private Sub Nyuryoku_Initialize()
  Worksheets("一覧").Select
  TopGyo = Worksheets("一覧").Range("A1").CurrentRegion.Row + 1
  BotGyo = Worksheets("一覧").Range("A1").CurrentRegion.Rows.Count
  NowGyo = TopGyo
  IchiHyoji
End Sub
'=================================================================
Sub IchiHyoji()
  Dim Ichi As String
  Ichi = "A" & NowGyo
  '職種.ControlSource = Ichi
  MsgBox Ichi
  'Label1.Caption = "全" & BotGyo - 1 & "件中 " & NowGyo - 1 & "件目"
End Sub

これでも「A0」というように表示されてしまいますか?

【10627】Re:0にしかならない?
お礼  み〜  - 04/2/3(火) 23:02 -

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

ありがとうございました!
うまくいきました!

どうしてうまくいくようになったのか、理由がまだよくわかっていないのですが、また余裕があれば教えてくださいね。
ちょっとで寝るところをひっぱってしまってすみませんでした。

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