-PR-
解決済み

マイクロソフト・エクセル97(マクロ)

  • すぐに回答を!
  • 質問No.75323
  • 閲覧数247
  • ありがとう数1
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 80% (24/30)

マイクロソフト・エクセル97

sheet1上で作った『ユーザー入力フォーム(VB)』を
sheet2からマクロの実行をしても、ユーザー入力フォームのデータがsheet2のものになっています。

sheet2からマクロを実行しても、きちんとsheet1のデータを反映させた(データ表示)いのですが、方法がわかりません。
  sheets(sheet1).Select

の記述をしてはみたのですが…。
とりあえず上の記述でうまくいくのですが、この方法でセーブし終了すると、『不正な処理をしたために…プログラムを強制的に終了します』が出てしまします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル13

ベストアンサー率 68% (791/1163)

提示されたコードにはPrivate、Publicが種々あり、コードがシート1かユーザーフォームか、またはモジュールのどのコードウインドウに書かれたのか不明で、コードも部分的と思えますし、起動方法も分からないのでかなりの部分は想像で書いています。100%理解できていません。
少しでも進展すればいいですが・・・。試してみて下さい。

●Dim トト結果記録, TBL(1 To 57) As Control
 Dim データ範囲 As Range
      ↓
   2行はコメント行にする。
   標準モジュールに(を追加し)、以下を追加。この57個のコントロールの意味は分かりません。
     Public トト結果記録, TBL(1 To 57) As Control
     Public データ範囲 As Range
     Public ws1 As WorkSheet

●Private Sub UserForm_Initialize()
   Comboチーム011.AddItem "-------J1"
        :
   Set データ範囲 = Range("A1").CurrentRegion
      ↓
     Private Sub UserForm_Initialize()
       Set ws1 = WorkSheets("Sheet1")  '追加
       Comboチーム011.AddItem "-------J1"
            :
       Set データ範囲 = ws1.Range("A1").CurrentRegion  '修正

●Public Function レコード数取得() As Integer
   レコード数取得 = Range("A1").CurrentRegion.Rows.Count - 1
      ↓
   レコード数取得 = ws1.Range("A1").CurrentRegion.Rows.Count - 1  '修正

●Public Sub データ表示(行数 As Integer)
   Dim トト結果記録, Cnt As Integer
      ↓
   Dim Cnt As Integer  '修正、二重定義になっている?
お礼コメント
kadomatsukun

お礼率 80% (24/30)

おかげで解決しました。
ありがとうございました。
今後ともよろしくお願いします。
投稿日時 - 2001-05-15 12:02:29
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル13

ベストアンサー率 68% (791/1163)

どのようなコードをかかれているか分かりませんが、UserForm_Initialize を例にして、TextBox1にSheet1のセルA1を表示するには

Private Sub UserForm_Initialize()
With Worksheets("Sheet1")
TextBox1 = .Range("A1")
End With
End Sub

のようにSheet1のセル範囲ということを明記したらどうでしょうか。該当シートをACTIVEにする必要は無いような気がします。

また、例でいえばTextBox1のControlSourceに"A1"(Sheet1のつもり)をセットされていれば、"Sheet1!A1"とすればいいと思います。
保存も問題なくできるはずです。
補足コメント
kadomatsukun

お礼率 80% (24/30)

> With Worksheets("Sheet1")
でやってみたのですが、うまくいきませんでした。
マクロの記述は書きのとおりです。
(一部省略)

アドバイス、お願いします。

----------------

Dim トト結果記録, TBL(1 To 57) As Control
Dim データ範囲 As Range

Private Sub UserForm_Initialize()

Comboチーム011.AddItem "-------J1"
Comboチーム011.AddItem "市原"
Comboチーム011.AddItem "磐田"
Comboチーム011.AddItem "浦和"

Spinトト節.Max = レコード数取得 + 1

Set TBL(1) = Textトト節
Set TBL(2) = Comboチーム011
Set TBL(3) = Frame結果1
Set TBL(4) = Comboチーム012

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

Public Function レコード数取得() As Integer
レコード数取得 = Range("A1").CurrentRegion.Rows.Count - 1
End Function
Public Sub データ表示(行数 As Integer)

Dim トト結果記録, Cnt As Integer
For Cnt = 1 To 57

Select Case Cnt
Case 3
If データ範囲.Cells(行数, Cnt).Value = "H○" Then
Option試合結果011.Value = True
Else
If データ範囲.Cells(行数, Cnt).Value = "H△" Then
Option試合結果010.Value = True
Else
Option試合結果012.Value = True
End If
End If
Case Else
TBL(Cnt).Value = データ範囲.Cells(行数, Cnt).Value
End Select
Next
Textトト節.Value = Spinトト節.Value - 1
End Sub
Private Sub Spinトト節_Change()

If データ範囲.Rows.Count <> 1 Then
データ表示 (Spinトト節.Value)
End If
End Sub

Private Sub Button追加_Click()
Dim AddRow As Integer
AddRow = データ範囲.Rows.Count + 1
データ書き込み (AddRow)

Textトト節.Text = Spinトト節.Value - 1 & "/" & レコード数取得
Set データ範囲 = Range("A1").CurrentRegion
Spinトト節.Max = データ範囲.Rows.Count
Spinトト節.Value = データ範囲.Rows.Count
データ表示 (AddRow)
End Sub

Public Sub データ書き込み(行数 As Integer)
Dim Cnt As Integer
For Cnt = 1 To 57
Select Case Cnt
Case 3
If Option試合結果011.Value = True Then
データ範囲.Cells(行数, Cnt).Value = "H○"
Else
If Option試合結果010.Value = True Then
データ範囲.Cells(行数, Cnt).Value = "H△"
Else
データ範囲.Cells(行数, Cnt).Value = "H×"
End If
End If
Case Else
データ範囲.Cells(行数, Cnt).Value = TBL(Cnt).Value
End Select
Next
End Sub

Private Sub Button登録書込み_Click()
データ書き込み (Spinトト節.Value)
End Sub

Private Sub Button終了_Click()
トトデータ.Hide
End Sub
投稿日時 - 2001-05-13 23:04:05

このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ