Excel VBA質問箱 IV

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

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


14516 / 76738 ←次へ | 前へ→

【67712】列数の取得について
質問  bakadeus E-MAIL  - 11/1/3(月) 9:01 -

引用なし
パスワード
   下記のコード中の「レコード数取得」でデータ範囲の列数を取得するようにしているのですが、なぜか取得してくれません。改良法をご教示ください。

現象→「34/89」(34は表示列により可変)となるべきところが「34/0」と表示されます。


Dim TBL(1 To 149) As Control
Dim データ範囲 As Range

Private Sub UserForm_initialize()

Worksheets("○○").Select

省略

Spin移動.Max = レコード数取得 + 1

Set データ範囲 = Range("a1").CurrentRegion
If データ範囲.Columns.Count = 1 Then
Else
データ表示 2
End If

End Sub

Public Function レコード数取得() As Integer

 レコード数取得 = Range("a1").CurrentRegion.Columns.Count - 1

End Function

Public Sub データ表示(列数 As Integer)

Dim Cnt As Integer
For Cnt = 1 To 149

  
  TBL(Cnt).Value = データ範囲.Cells(Cnt, 列数).Value

Next

Textレコード.Value = Spin移動.Value - 1 & "/" & レコード数取得

End Sub

Private Sub Spin移動_change()

If データ範囲.Columns.Count <> 1 Then
データ表示 (Spin移動.Value)
End If

End Sub

Private Sub button追加_click()
'/////////////////////////////重複追加チェック

Dim vntData As Variant

Worksheets("年調DATA").Select

'氏名を取得
vntData = Text氏名.Value

'D列に同じ氏名の個数を取得
If WorksheetFunction.CountIf(Range("2:2"), vntData) > 0 Then
MsgBox "この人は、すでに登録されています。" & vbNewLine & _
"確認してください!", vbExclamation, "重複警告"

'使用済変数の破棄
Set vntData = Nothing

データ表示 (Spin移動.Value)

Exit Sub

End If
'/////////////////////////////////////

Dim Addrow As Integer
Addrow = データ範囲.Columns.Count + 1
データ書き込み (Addrow)

Textレコード.Text = Spin移動.Value - 1 & "/" & レコード数取得
Set データ範囲 = Range("a1").CurrentRegion
Spin移動.Max = データ範囲.Columns.Count
Spin移動.Value = データ範囲.Columns.Count
データ表示 (Addrow)

End Sub
Private Sub Button更新_Click()
  
  データ書き込み (Spin移動.Value)

End Sub
Public Sub データ書き込み(列数 As Integer)
Dim Cnt As Integer
For Cnt = 1 To 149

  
  データ範囲.Cells(Cnt, 列数).Value = TBL(Cnt).Value

Next

End Sub

Private Sub Button終了_Click()
 
Dim myBtn As Integer
myBtn = MsgBox("年末調整処理の個人別入力作業を終了しますか?", vbQuestion + vbOKCancel)
If myBtn = vbOK Then
Application.DisplayAlerts = False
  ActiveWorkbook.Save
  Unload Me
End If

'終了してメニューに戻る
Worksheets("menu").Select
Range("A1").Select
Application.GoTo reference:=ActiveCell, Scroll:=True

End Sub

0 hits

【67712】列数の取得について bakadeus 11/1/3(月) 9:01 質問
【67713】Re:列数の取得について かみちゃん 11/1/3(月) 9:30 発言
【67714】Re:列数の取得について bakadeus 11/1/3(月) 10:41 お礼

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