いつもお世話になっております。
表題の件で2つほど質問があります。

 1.実行した時、ブック自体を最小化して、初期値入力用のユーザーフォームだけを画面に表示しようとした所、どうしても、一番前に表示されません。
 何かウィンドウ等が開いていると、ステータスバーのエクセルの表示が点滅するだけで、なんらかのアクションを起こさないと、ユーザーフォームが見えるようになりません。

 2.97ではプログレスバーが使用できないので、ユーザーフォーム上に文字で、
(例えば「処理中です・・・・X/5600」のように表示し、Xをカウントアップする)
経過を知らせたいのですが、いろいろ試行錯誤しましたが、出来ませんでした。

 不特定多数の部署で、不特定の人が使用する可能性があるので、ブックをダブルクリックすると全自動で動作するように運用します。そのような事情なので、上記2つの機能を是非とも組み込みたいのですが、お知恵を拝借出来ませんでしょうか?
 よろしくお願いします。

A 回答 (2件)

プログレスバーは


別にUserFormを作って
UserForm1からボタンで
UserForm2.Show
するなどしてください。


UserFormに、ラベル「Label1」を作って下さい。



Private Sub UserForm_Activate()

With Label1
.SpecialEffect = 2
.BackColor = vbBlue
www = .Width
.Width = 0
End With

For i = 1 To 1000
Me.Caption = i
Label1.Width = i / 1000 * www
Me.Repaint
Next

End Sub


説明が不足の場合は質問ください。
Excel97で確認しました。
ちなみに両方とも本の丸写しなので出典を

(株)秀和システム
Excel2000 VBA 実践プログラミング

いろいろ勉強になります。
良かったら一度目を通してみてください。

この回答への補足

 同じ方に両方のポイントは割り振れないんですね。(苦笑)
残念です。
 また、よろしくお願いします。

補足日時:2002/02/28 15:38
    • good
    • 0
この回答へのお礼

 ありがとうございます!!
実際にプログレスバーを表現できるようにしていただけたとは、オドロキました。
 どうも、BVAは機能が充実し過ぎていて、まだ全体を把握出来ていないようです。まだまだ精進が足りないということですか・・・

Private Sub UserForm_Activate()の使い方を教わったので、理解できているか、応用で、始めに自分で言っていた、X/Y表示を書いて見たところ、上手くいきました。

 実際の処理は、このFor~Nextの間で実行すればいいわけですね。
もしもそれで上手く行かなかった場合、改めて質問させていただくとして、今回はこれで一旦、締め切ります。
 教えていただいた書籍も、是非入手して勉強したいと思います。

 何からなにまで、本当にありがとうございました。

お礼日時:2002/02/28 15:36

新規ブックでテストしてください。


Thisworkbookと
UserFormに以下のものを
貼り付けてください。


Thisworkbookに

Private Sub Workbook_Open()
UserForm1.Show
End Sub




UserFormに

Private Sub UserForm_Initialize()
Application.WindowState = xlMinimized
AppActivate "Microsoft Excel"
End Sub


プログレスバーは作成中です。
    • good
    • 0
この回答へのお礼

 早速の回答、ありがとうございます。

私の試みは、ほとんど正解だったようですが、

>AppActivate "Microsoft Excel"

 というコマンド(?)を知らなかったので、上手く行かなかったようです。
後は、まんま私の書いた記述通りでした。
 大変勉強になりました、ありがとうございます。


>プログレスバーは作成中です。

 次も考えていただいてるんですか。本当に申し訳ありません。
引き続き、よろしくお願いします。

お礼日時:2002/02/28 15:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qexcelのマクロでrangeの選択がうまくいきません。

excelのマクロでrangeの選択がうまくいきません。
以下のマクロをsheet2に書きました。testcopyは動きますが、testcopy2は動きません。なぜなのでしょうか。どうすればいいのでしょうか。それ以外のマクロの部分との関係から、cellsを使い、数字を使ってrangeの処理をしたいのです。よろしくお願いします。

Sub testcopy()
Worksheets("sheet1").Range("B3:C10").Copy
Worksheets("sheet2").Range("e5").Select
ActiveSheet.Paste
End Sub

Sub testcopy2()
Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy
Worksheets("sheet2").Range("e5").Select
ActiveSheet.Paste
End Sub

Aベストアンサー

>testcopyは動きますが、testcopy2は動きません

testcopyは「動作したり、しなかったりする」が正しい表現です。
  要するに今回testcopyが動いたのは▼たまたま▼ということです。

testcopy2 は当然ながらエラーになります。
何れにしろ、両方ともに問題があるということです。
その問題点は2つあります。

(1)アクティブでないシートのセルはSelect(Activate)できない
(2)複数のシートを扱うときのセルの参照は
   そのセルがどのシートのセルなのか明示する必要がある


これを踏まえて、、、、
---------------
●testcopy●

これが動作するのは
Sheet【2】がアクティブな状態で実行する場合です

Sheet【1】がアクティブな状態で実行すると
  Worksheets("sheet2").Range("e5").Select
ここで、問題点(1)の理由によりエラー。
で、先ずシートを選択、次にセルを選択と2段階にしないといけません。

  Worksheets("sheet2").Select
  ActiveSheet.Range("E5").Select

----------------
●testcopy2●

▼Sheet【1】がアクティブな状態で実行
  testcopyと同じ場所、同じ理由でエラー

▼Sheet【2】がアクティブな状態で実行
  Worksheets("sheet1").Range(Cells(3, 2), Cells(10, 3)).Copy
  ここで、問題点(2)により、エラー。
 
 Cellsの前にシートオブジェクトがないので
 Cells(3, 2), Cells(10, 3)はアクティブなSheet【2】のセルとみなされ
 (★実際はちょと違う場合もありますが今回はそう★)

 Worksheets("sheet1").Range(  ← Sheet【1】
 Cells(3, 2), Cells(10, 3))   ← Sheet【2】

このようにSheet【1】【2】が混在していることになり、エラー
で、Cellsの前にシートを付加してセルがどのシートのセルか明示してやる

Worksheets("sheet1").Range(Worksheets("sheet1").Cells(3, 2), Worksheets("sheet1").Cells(10, 3)).Copy
  
---------------------------------
で、質問者のコードを修正すると
'-------------
Sub testcopy()
 Worksheets("sheet1").Range("B3:C10").Copy
 With Worksheets("sheet2")
   .Select
   .Range("E5").Select
   .Paste
 End With
End Sub
'-------------

Sub testcopy2()
 With Worksheets("sheet1")
   .Range(.Cells(3, 2), .Cells(10, 3)).Copy
 End With
 With Worksheets("sheet2")
   .Select
   .Range("E5").Select
   .Paste
 End With
End Sub
'--------------

●ただ今回のような単純なコピーの場合は
 既出の回答にあるようにSelectなしで書くのがふうつです。
'-----------
Sub testcopy111()
 Worksheets("sheet1")
   .Range("B3:C10").Copy Worksheets("sheet2").Range("E5")
 End With
End Sub
'-----------
Sub testcopy222()
 Worksheets("sheet1")
  .Range(.Cells(3, 2), .Cells(10, 3)).Copy Worksheets("sheet2").Range("E5")
 End With
End Sub
'-----------

今回の件は重要事柄ですので覚えておきましょう。
以上です。
 

>testcopyは動きますが、testcopy2は動きません

testcopyは「動作したり、しなかったりする」が正しい表現です。
  要するに今回testcopyが動いたのは▼たまたま▼ということです。

testcopy2 は当然ながらエラーになります。
何れにしろ、両方ともに問題があるということです。
その問題点は2つあります。

(1)アクティブでないシートのセルはSelect(Activate)できない
(2)複数のシートを扱うときのセルの参照は
   そのセルがどのシートのセルなのか明示する必要がある


これを踏まえて、、、、
-...続きを読む

Qエクセルの指定したセルに指定した文字が入ると、ユーザーフォームのように文字が出るようにしたい

エクセルで指定したセルにたとえば、
"りんご”という文字が入った時に、注意書きが出るようにしたいと思っています。

A1に、「りんごとみかん」と入ったら、 それに気づくようにしたいのですが、

イメージとしては、
VBAでユーザーフォームを作って、A1に「りんご」が入ったらユーザーフォームが出てくる
感じをイメージしていますが、
そこまで手が込んでいなくても、いいのですが
注意書きが出るようにしたいです。
教えてください。

Aベストアンサー

No.1です。

>4列目に入力しているときには、A4に”りんご”が入ったらメッセージボックス出現
>6列目に入力しているときは、A6に”りんご”が入ったらメッセージボックス出現

結局A列すべてを対象とした方が良かったのですね?

>If .Address = "$A$1" Then
の行を
>If .Column = 1 And .Count = 1 Then
に変更してみてください。

※ 余計なお世話かもしれませんが、
仮にA1~A20セルを対象とし、入力セルを再選択・消去するコードは↓のような感じになります。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim str As String
str = "りんご" '//ここで文字列を指定
If Intersect(Target, Range("A1:A20")) Is Nothing Or Target.Count > 1 Then Exit Sub
If InStr(Target, str) > 0 Then
MsgBox str & "が含まれています。"
Target.Select
Selection.ClearContents
End If
End Sub

※ 「りんご」以外の文字にも対応できるように、
str という変数を使ってみました。m(_ _)m

No.1です。

>4列目に入力しているときには、A4に”りんご”が入ったらメッセージボックス出現
>6列目に入力しているときは、A6に”りんご”が入ったらメッセージボックス出現

結局A列すべてを対象とした方が良かったのですね?

>If .Address = "$A$1" Then
の行を
>If .Column = 1 And .Count = 1 Then
に変更してみてください。

※ 余計なお世話かもしれませんが、
仮にA1~A20セルを対象とし、入力セルを再選択・消去するコードは↓のような感じになります。

Private Sub Worksheet_Chang...続きを読む

QRange("K" & TR).Formula = で、セルにマクロで式を書きたいのですが

よろしくお願いします。いつもgooの皆さんには大変お世話になっています
エクセルは2013です

わけあって、セルにマクロで式を書いています
例えば TRは行を表す変数ですが
Range("K" & TR).Formula = "=IFERROR(AY" & TR & ","""")" と書いたマクロの結果は
=IFERROR(AY43,"") という式がRange("K" & TR) に書かれます

それでは、いま、マクロで下記のように書いているコード(TRは行を表す変数です)
Range("Z" & i) = Range("Z" & i - 1) - Range("AG" & TR) * 10000 は
Range("Z" & i).Formula = 
で書く場合、=の右側をどう書いたら良いでしょうか

色々とやってみたのですが狙った式になりません

この場合 変数 i を使っているので、もしかしたら、そもそも無理なことでしょうか

うまく説明できていませんがよろしくお願いします

Aベストアンサー

No.1です。申し訳ありません大ボケな回答をしていましました。

要するに↓ってことですよね? また勘違いしていたらスミマセン。

Range("Z" & i).Formula = "=Z" & i - 1 & "-AG" & TR & " * 10000"

QエクセルVBA 別のブックのユーザーフォームを開く

エクセル2007のVBAについての質問です。
Book1のSheet1に取引先を入力するUserForm1があります。
Book2には操作の説明を記載してます。
UserForm1上に「ヘルプボタン」があり、Book2のヘルプ(Sheet1)に遷移する様にしてます。
UserForm1内のTextBoxにセルからの値を取得したりしているので、Book1からBook2に遷移した際、UserForm1はUnloadではなくHideにしてます。
Book1からBook2に遷移し、UserForm1は非表示になり、Book2からBook1に戻る際に、シート上の「戻るボタン」をクリックでBook1に遷移し、且つBook2は保存せずに閉じる様にしてます。
そこまでは何の問題もないのですが、Book2からBook1に遷移した時に、非表示にしていたUserForm1を再表示したいのですが表示されません。
尚、Book1からBook2へ遷移した際、Book1は閉じずに開いたままです。
上手く説明できなく恐縮ですが、どなたかお教えいただければ助かります。

エクセル2007のVBAについての質問です。
Book1のSheet1に取引先を入力するUserForm1があります。
Book2には操作の説明を記載してます。
UserForm1上に「ヘルプボタン」があり、Book2のヘルプ(Sheet1)に遷移する様にしてます。
UserForm1内のTextBoxにセルからの値を取得したりしているので、Book1からBook2に遷移した際、UserForm1はUnloadではなくHideにしてます。
Book1からBook2に遷移し、UserForm1は非表示になり、Book2からBook1に戻る際に、シート上の「戻るボタン」をクリックでBook1に遷移し、且...続きを読む

Aベストアンサー

> 取引先を入力するフォームのヘルプからはBook2のSheet1へ、
> 顧客を入力するフォーム(UserForm2)のヘルプからは、Book2のSheet2へとしてます。
> この場合、Book2のSheet1からBook1へ遷移した際は、UserForm1を、
> Book2のSheet2からBook1へ遷移した場合は、UserForm2を。。。という具合に
> それぞれのUserFromを開く事は可能ですか?

No.2ではフラグ変数の型をBooleanで想定していましたが、Long型にすれば良いです。
起動時の値が0
Book2のSheet1へ遷移する際には、1を設定
Book2のSheet2へ遷移する際には、2を設定
……
として
Book1のWorkbook_Activate()では、フラグ変数の値によって表示させるUserFormを変えれば良いですね。

QVBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗

マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。

マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。

いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。

*********************************************************
*********************************************************
Sub 日報別ファイルに保存したい1()
Worksheets("日報").Range("A3:AF36").Copy
With Workbooks.Add
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

ApplicationDisplayAlerts = True '同名FILEが存在する場合'
ActiveWorkbook.SaveAs Filename:= _
"c:\日報\" & ActiveSheet.Range("J2") & "年" & ActiveSheet.Range("l2") & "月" & ActiveSheet.Range("n2") & "日_日報.xls" _
, FileFormat:=xlNormal
.Close file


End With

End Sub

マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。

マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。

いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。

***********...続きを読む

Aベストアンサー

こんにちは。

>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。

まず、シート名の長いコードは、これだけでよいはずです。

Private Sub Workbook_Activate()
 Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
 Case "1" To "30", "日報"
  Application.Calculation = xlCalculationManual
 End Select
End Sub


-------------------------------------------
''もし、そのままでダメでしたら、 ' Application.EnableEvents = False 'イベントの介入を阻止する のところのコメント・ブロック('コードの手前のアポストロフィ)を外して、再度試してみてください。

Sub 日報別ファイルに保存したい2()
Dim myRng As Range
Set myRng = Worksheets("日報").Range("A3:AF36")
 ' Application.EnableEvents = False 'イベントの介入を阻止する

With Workbooks.Add
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 
  Application.CutCopyMode = False
 
 ApplicationDisplayAlerts = True '**これは、そのままでは必要ないはずです。'
 
 ActiveWorkbook.SaveAs Filename:="c:\日報\" & ActiveSheet.Range("J2") & "年" & _
                 ActiveSheet.Range("l2") & "月" & _
                 ActiveSheet.Range("n2") & "日_日報.xls", _
                 FileFormat:=xlNormal
 .Close file
End With
Set myRng = Nothing
'Application.EnableEvents = True 'イベントマクロの活動を戻す

End Sub

こんにちは。

>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。

まず、シート名の長いコードは、これだけでよいはずです。

Private Sub Workbook_Activate()
 Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
 Case "1" To "30", "日報"
  Application.Calculation = xlCalculationManual
 End Select
End Sub


-----------------------------------------...続きを読む

QブックをCloseまたはQuitで閉じると他のユーザーフォームが消えてしまう。

ブックをCloseまたはQuitで閉じると他のユーザーフォームが消えてしまう。

お世話になります。
Excel2000、2013でツール開発をしているのですが、タイトルのようにユーザーフォームが消えてしまって困っています。
助言頂ければと思います。

Book1
 UserForm1…Book2を開くボタンを実装してあります。単純にWorkbooks.openです。

Book2
 UserForm2…Book2のOpenにてShowされるユーザーフォームです。

Book1のUserForm1からBook2のUserForm2をShowさせた後、
UserForm2の閉じるボタンにて「Application.quit」と「ThisWorkbook.Close」を実行させて、
Book2を閉じてまたUserForm1に戻る処理を行いたいのです。

ところが、quitとcloseを実行するとBook2は問題なく閉じるのですが、
UserForm1までもが消えてしまいます。

UserForm1を消さずに戻る方法は無いのでしょうか??

ブックをCloseまたはQuitで閉じると他のユーザーフォームが消えてしまう。

お世話になります。
Excel2000、2013でツール開発をしているのですが、タイトルのようにユーザーフォームが消えてしまって困っています。
助言頂ければと思います。

Book1
 UserForm1…Book2を開くボタンを実装してあります。単純にWorkbooks.openです。

Book2
 UserForm2…Book2のOpenにてShowされるユーザーフォームです。

Book1のUserForm1からBook2のUserForm2をShowさせた後、
UserForm2の閉じるボタンにて「Applic...続きを読む

Aベストアンサー

No2です。
こちらで確認した方法です。
Book1のUseform1のコード
--------------------------------
Private Sub CommandButton1_Click()
Workbooks.Open "d:\goo\excel\book107b.xlsm"
Application.Run "book107b.xlsm!Macro1"
Workbooks("book107b.xlsm").Close
End Sub

(book2相当)book107b.xlsmの標準モジュール
----------------------------------
Public Sub Macro1()
UserForm2.Show
End Sub

(book2相当)book107b.xlsmのUserForm2のコード
-------------------------------------
Private Sub CommandButton1_Click()
Unload Me
End Sub

QExcelマクロでRange("A1:A5,C1:C5")をCellsで書きたいのですが

マクロ初心者です。
Excelマクロでグラフを作成するときに、元データを指定する所で、
Source:=Range("A1:A5,C1:C5")とするような場合、
「A1」とかアルファベットでの番地指定ではなく、
Cellsを用いて書きたいのです。

Source:=Range("A1:A5")であれば、
Source:=Range(Cells(1, 1), Cells(5, 1))と書けばいいことは分かるのですが、範囲指定を複数にする場合が分からないのです。

よろしくお願いします。

Aベストアンサー

Unionを使用したらできると思います。

Source:=Union(Range(Cells(1, 1), Cells(5, 1)), Range(Cells(1, 3), Cells(5, 3)))

今Excelがインストールされてないパソコンで作業していないので確認はしていないのですが・・・。

よかったら参考にして下さい

Qエクセル:日付表示(ユーザー設定)のこのような表示はどうすれば?

「2006/1/1」と入力して、
「平成18年1月1日」と表示するのは設定でできますが、『18年1月1日』とだけ表示させたいのですが、(「平成」(元号)が不要)そのユーザー設定方法を教えてください。よろしくお願いいたします。

Aベストアンサー

#1です。チェック遅れました。

先頭の[$-411]ですが、一応、国をあらわしています。
日本はこの番号と言うことです。

(ちなみに、日付で「中国」などを選択する場合には[$-804]となります)

普段はつけなくても平気なのですが、一応つけた形でお答えしました。よろしいでしょうか?

Qエクセルのマクロ(range)について

マクロの作りと理解の方法について教えてください。

今、日報を作り直しています。
以前作成した方は、このように作っていました。


Worksheets("日報").Select
Range("Q7:Q23").Value = Range("U7:U23").Value
Range("S7:S59").Value = Range("V7:V59").Value
Range("A1").Select
MsgBox " 転写を終了しました。"
End Sub


マクロでは複数の行列を指定していますが、1行だけ表すと、
具体的な表とデータの変化の仕方とするとこのようになっています。

M    O    Q     S       U     V
個数 金額  累計個数 金額金額 (=M+Q) (=O+S)
0、   0、   100、   1000、    100、   1000 
1,初期状態

10、  100、  100、   1000、    110、   1100
2,個数を入力すると、計算式を入力してあるUとVの数が変わる

10、  100、   110、   1100、    120、   1200
3,マクロを実行すると、UとVの数がQとSに入力され、計算式を入力してあるUとVの数がさらに変わる。

0、   0、    110、   1100、   110、    1100
4,MとOの数をゼロ(クリア)にすると、計算式を入力してあるUとVの数が変わる。     


なかなか理解できないのは、Range("Q7:Q23").Value = Range("U7:U23").Valueの部分で、
2,の後にマクロを実行すると、U 110、V 1100がQ 100とS 1000に書き込まれることです。
通常の計算式だと=は対象となったセルをそのまま表示していると思うのですがのですが、
マクロに書いてある式だと3,のところでUとVの数をQとSに書き込んであります。
なぜ=なのにマクロでは一方のセルに数を書き込んでいるのでしょうか。
また、QやSをUやVへ書き込んでいないのでしょうか。

どなたか詳しく教えていただけると幸いです。

マクロの作りと理解の方法について教えてください。

今、日報を作り直しています。
以前作成した方は、このように作っていました。


Worksheets("日報").Select
Range("Q7:Q23").Value = Range("U7:U23").Value
Range("S7:S59").Value = Range("V7:V59").Value
Range("A1").Select
MsgBox " 転写を終了しました。"
End Sub


マクロでは複数の行列を指定していますが、1行だけ表すと、
具体的な表とデータの変化の仕方とするとこのようになっています。

M    O    Q     S...続きを読む

Aベストアンサー

プログラミング言語では、一般的に、
「=」は、右辺から左辺への「代入」
を意味します。

マクロ = Visual Basic = プログラミング言語
なので、Excelにおける「=」とは少し意味合いが違っています。

Qユーザーフォーム上に表示されているテキストブックのテキストを右クリックでコピー&ペーストする方法

エクセルに関する質問をさせて頂きます。
エクセルのユーザーフォーム上に表示されているテキストボックスのテキストを、マウスの右クリックでコピー、別のテキストボックスにペーストしたく考えています。
色々調べて見たんですが、方法が見つかりません。
どなたかご存知の方がおられましたらご教授頂きたくお願い致します。

Aベストアンサー

こんばんは。Wendy02です。

>ユーザーには「Cntl+C」と「Cntl+V」で対応させるようにします。

とても残念な対応ですが、それがベストだと思います。私が書いた方法は、Excelでは上級レベルのテクニックです。お話の様子では、たぶん、基本的なコードの貼り付け位置が違っているような気がします。

こちらは、新規ブックで試してみましたので、間違いはないはずですが、こちらは、分っている部分でも、何か指摘し忘れている部分があるのかもしれません。

一度、Class 内モジュール・ペインの横の枠をクリックして、いくつかにブレークポイントをつけて、きちんと設定しているか、様子をみていただければと、もしかしたら分るかもしれません。ひとつずつ丁寧にみれば、どこかで抜け落ちが分るはずですが、ある程度のレベルが必要になってしまいますので、私のほうも、これ以上はなんともいいようがありません。


人気Q&Aランキング

おすすめ情報