Excel VBA質問箱 IV

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

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


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

【13867】コマンドボタンの内容変更について WAKO 04/5/15(土) 14:27 質問[未読]
【13868】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 14:55 回答[未読]
【13869】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 15:16 質問[未読]
【13873】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 16:23 回答[未読]
【13874】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 17:07 質問[未読]
【13876】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 17:22 回答[未読]
【13877】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 17:31 回答[未読]
【13880】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 17:54 発言[未読]
【13896】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 20:59 質問[未読]
【13898】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 21:59 回答[未読]
【13899】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 22:30 お礼[未読]
【13881】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 17:56 質問[未読]
【13884】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 18:07 回答[未読]
【13885】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 18:20 お礼[未読]
【13886】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 18:31 質問[未読]
【13888】Re:コマンドボタンの内容変更について ちゃっぴ 04/5/15(土) 19:20 回答[未読]
【13891】Re:コマンドボタンの内容変更について WAKO 04/5/15(土) 19:30 お礼[未読]

【13867】コマンドボタンの内容変更について
質問  WAKO  - 04/5/15(土) 14:27 -

引用なし
パスワード
   非常に簡単な質問ですが、
マクロの起動中に、コマンドボタンの内容を変更
したいのですが、
With CommandButton1
   .Caption = "エラーチェック"
End With

を記述すると、オブジェクトが必要です。
というエラーがでるのですが
どのように書いたらよろしいでしょうか。
すいませんがどなたか教えて下さい。

【13868】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 14:55 -

引用なし
パスワード
   この質問の続きですよね
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=13842;id=excel

ということは、シート1にCommandButton1をコピーしたんですよね?

まずは、エラーが起きた時点でシート1にオブジェクト名CommandButton1が存在することを確認してください。

≪プロパティ≫→≪オブジェクト名≫

コマンドボタンをコピーするとオブジェクト名が変更される可能性があります。

【13869】Re:コマンドボタンの内容変更について
質問  WAKO  - 04/5/15(土) 15:16 -

引用なし
パスワード
   ▼ちゃっぴ さん:
返信ありがとうございます。本当に助かります。
質問の続きです。
ちゃっぴ さんのは、
With ActiveWorkbook.VBProject.VBComponents.Item("Sheet1").CodeModule

    'マクロの 1 行目です。同様に 5 行目まで書き込みます。
    .InsertLines 1, "Private Sub CommandButton1_Click()"
    .InsertLines 2, ""
    .InsertLines 3, " MsgBox ""セルの値が変更されました"""
    .InsertLines 4, ""
    .InsertLines 5, "End Sub"
End With
これを使わせていただきました。

CommandButton1をコピーしたのではなく、
OPEN時に、CommandButton1を作成するマクロを入れました。内容は以下ののように記述
しました。(CommandButton1をコピーはうまくできませんでした)

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1"
, Link:=False _
, DisplayAsIcon:=False, Left:=108, Top:=14.25, Width:=81, Height:= _
33.75).Select

マクロ実行後、クリックすると "セルの値が変更されました"
というメッセージがでますので、CommandButton1は
作成できていると思います。

CommandButton1.Caption = "エラーチェック" は、
OPEN時のマクロで、CommandButton1を作成し,ActiveWorkbook.Save後
に追加したのですが、オブジェクトが必要です。
というエラーがでました。
マクロが終了しないと、CommandButton1というオブジェクトができたと
認識してくれないのでしょうか。
ちゃっぴ さん 分かりますか。


▼ちゃっぴ さん:
>この質問の続きですよね
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=13842;id=excel
>
>ということは、シート1にCommandButton1をコピーしたんですよね?
>
>まずは、エラーが起きた時点でシート1にオブジェクト名CommandButton1が存在することを確認してください。
>
>≪プロパティ≫→≪オブジェクト名≫
>
>コマンドボタンをコピーするとオブジェクト名が変更される可能性があります。

【13873】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 16:23 -

引用なし
パスワード
   前のソース間違ってました。削除します。

OLEObjectの個々のオブジェクトを参照するには、Objectプロパティを使用しなければならないみたいです。

  Dim objButton As OLEObject
  Set objButton = ActiveSheet.OLEObjects.Add _
         (ClassType:="Forms.CommandButton.1", Link:=False, _
          DisplayAsIcon:=False, Left:=108, Top:=14.25, _
          Width:=81, Height:=33.75)
  objButton.Object.Caption = "sdaf"

この場合だと変数「objButton」は「OLEObject」となりますので「OLEObject」に関連づけられたプロパティのみ取得できます。

「OLEObject」のプロパティにCaptionプロパティは存在しませんので以前のものはエラーとなります。
「objButton.Object」とすると、このオブジェクトに関連付けられたOLEオブジェクトはCommandButtonですので、ようやくCommandButtonのプロパティを使用できるようになります。

【13874】Re:コマンドボタンの内容変更について
質問  WAKO  - 04/5/15(土) 17:07 -

引用なし
パスワード
   ▼ちゃっぴ さん:
返信ありがとうございます。
でも、ここで、オブジェクトが必要です。というエラーで落ちてしまいます。
Set objButton = ActiveSheet.OLEObjects.Add _
         (ClassType:="Forms.CommandButton.1", Link:=False, _
          DisplayAsIcon:=False, Left:=108, Top:=14.25, _
          Width:=81, Height:=33.75)


ちなみに私のソースは、

Private Sub Workbook_Open()

  Dim w_シート名  As String
  Dim objButton  As OLEObject
  
  Application.ScreenUpdating = False   '処理画面非表示
  Application.DisplayAlerts = False   '処理画面非表示
  
  w_シート名 = ActiveWorkbook.Name
  
  'Worksheets(1).Select
  'ActiveWorkbook.Worksheets(1).Delete
  
  Workbooks.Open ("C:\WINDOWS\デスクトップ\単品.XLS")
  
  ActiveWorkbook.Sheets("Sheet1").Select
  ActiveWorkbook.Sheets("Sheet1").Copy Before:=Workbooks(w_シート名).Worksheets(1)
  
  Workbooks("単品.XLS").Activate
  ActiveWorkbook.Close
    
  Rows("1:5").Select
  Selection.Insert Shift:=xlDown
  Sheets("Sheet3").Select
  Range("A1:CL5").Select
  Selection.Copy
  Sheets("Sheet1").Select
  Range("A2").Select
  ActiveSheet.Paste
  
  Rows("1:1").RowHeight = 56.25
  
  Range("A1").Select
  
  Set objButton = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
    , DisplayAsIcon:=False, Left:=108, Top:=14.25, Width:=81, Height:= _
    33.75).Select
  
  Range("A1").Select

  With ActiveWorkbook.VBProject.VBComponents.Item("Sheet1").CodeModule

    'マクロの 1 行目です。同様に 5 行目まで書き込みます。
    .InsertLines 1, "Private Sub CommandButton1_Click()"
    .InsertLines 2, ""
    .InsertLines 3, " MsgBox ""セルの値が変更されました"""
    .InsertLines 4, ""
    .InsertLines 5, "End Sub"
  End With

  ActiveWorkbook.Save

  objButton.Object.Caption = "エラーチェック"
  
  Application.DisplayAlerts = True   '処理画面非表示
  Application.ScreenUpdating = True   '処理画面非表示

End Sub

です。マクロエクセルにはSHEET2と3しかありません。
いろいろ教えていただいて恐縮ですが、
エラーの原因わかりますでしょうか。
よろしくお願いします。


▼ちゃっぴ さん:
>前のソース間違ってました。削除します。
>
>OLEObjectの個々のオブジェクトを参照するには、Objectプロパティを使用しなければならないみたいです。
>
>  Dim objButton As OLEObject
>  Set objButton = ActiveSheet.OLEObjects.Add _
>         (ClassType:="Forms.CommandButton.1", Link:=False, _
>          DisplayAsIcon:=False, Left:=108, Top:=14.25, _
>          Width:=81, Height:=33.75)
>  objButton.Object.Caption = "sdaf"
>
>この場合だと変数「objButton」は「OLEObject」となりますので「OLEObject」に関連づけられたプロパティのみ取得できます。
>
>「OLEObject」のプロパティにCaptionプロパティは存在しませんので以前のものはエラーとなります。
>「objButton.Object」とすると、このオブジェクトに関連付けられたOLEオブジェクトはCommandButtonですので、ようやくCommandButtonのプロパティを使用できるようになります。

【13876】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 17:22 -

引用なし
パスワード
   >でも、ここで、オブジェクトが必要です。というエラーで落ちてしまいます。
>Set objButton = ActiveSheet.OLEObjects.Add _
>         (ClassType:="Forms.CommandButton.1", Link:=False, _
>          DisplayAsIcon:=False, Left:=108, Top:=14.25, _
>          Width:=81, Height:=33.75)

ActiveSheetが有効ではないのでは?
ActiveSheet を Workbooks(ブック名).WorkSheets(シート名)
に置き換えてから実行してみてください。

あと、老婆心からですが・・・
ActiveWorkbookやActiveSheetを繰り返すのはよくないと思います。
一々アクティブになるので処理が非常に重くなります。

Dim wbkBookA As WorkBook
Dim wshSheetA As WorkSheet

Set wbkBookA = WorkBooks(1)
Set wshSheetA = wbkBookA.WorkSheets(1)

のようにオブジェクト変数を用いて記述してみれば?
速いですし、ソースが見やすくなりますよ♪

【13877】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 17:31 -

引用なし
パスワード
   すみません見落としてました。

>  Set objButton = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", Link:=False _
    , DisplayAsIcon:=False, Left:=108, Top:=14.25, Width:=81, Height:= _
    33.75).Select

の.Selectを削除してください。

Setステートメントはオブジェクト変数に値を格納するステートメントで、
「Set A = オブジェクト」
という構文を取ります。
この場合ではSet分の右辺が「オブジェクト.Select」とSelectメソッドを指定していますので、エラーとなります。

お分かりになりましたか?

【13880】Re:コマンドボタンの内容変更について
発言  ちゃっぴ E-MAIL  - 04/5/15(土) 17:54 -

引用なし
パスワード
   オブジェクト変数を駆使して修正すると以下のようになります。

ご参考までに・・・

Private Sub Workbook_Open()

  Dim w_シート名     As String
  Dim objButton      As OLEObject
  Dim wbkBook(1 To 2)   As Workbook
  Dim wshTargetSheet   As Worksheet
  
  Application.ScreenUpdating = False   '画面更新の停止
  Application.DisplayAlerts = False    '警告メッセージ非表示
  
  wbkBook(1) = ThisWorkbook
  'ブックオープン
  wbkBook(2) = Workbooks.Open("C:\WINDOWS\デスクトップ\単品.XLS")
  
  'シートコピー
  wbkBook(2).Worksheets("Sheet1").Copy Before:=wbkBook(1).Worksheets(1)
  
  wbkBook(2).Close     'ブッククローズ
  
  With wshTargetSheet
    .Rows("1:5").Insert Shift:=xlDown  '行の挿入
    
    wbkBook(1).Sheets("Sheet3").Range("A1:CL5").Copy _
      Destination:=.Range("A2")    'データのコピー
   
    .Rows(1).RowHeight = 56.25      '行幅調整
    
    'コマンドボタンの挿入
    Set objButton = .OLEObjects.Add _
      (ClassType:="Forms.CommandButton.1", Link:=False, _
        DisplayAsIcon:=False, Left:=108, Top:=14.25, _
        Width:=81, Height:=33.75)
  End With
  
  objButton.Object.Caption = "エラーチェック"  '表示名変更
  
  'マクロの記述
  With wbkBook(1).VBProject.VBComponents.Item("Sheet1").CodeModule
  
    'マクロの 1 行目です。同様に 5 行目まで書き込みます。
    .InsertLines 1, "Private Sub CommandButton1_Click()"
    .InsertLines 2, ""
    .InsertLines 3, " MsgBox ""セルの値が変更されました"""
    .InsertLines 4, ""
    .InsertLines 5, "End Sub"
  End With
  
  wbkBook(1).Save  '保存
  
  オブジェクト変数初期化
  Set wbkBook(1) = Nothing
  Set wbkBook(2) = Nothing
  Set wshTargetSheet = Nothing
  Set objButton = Nothing
  
  Application.DisplayAlerts = True    '確認メッセージ非表示
  Application.ScreenUpdating = True   '画面更新の再開
  
End Sub

ね、シンプルになったでしょ♪

【13881】Re:コマンドボタンの内容変更について
質問  WAKO  - 04/5/15(土) 17:56 -

引用なし
パスワード
   ▼ちゃっぴ さん:
本当に大変ありがとうございます。
長い時間こんなに親切にしていただいて、大変うれしく思っています。

おかげ様でうまくいきました。

これは今までと違うのですが、聞いてもよろしいですか。
マクロの記録では、でなかったのです。
下の.BackColorですが、下のように書くと
型が違います。というエラーになるのですが
書き方は分かりますでしょうか。
実はボタンの色も変えたいのです。
参考書もボタンの色の変え方は書いてなかったのです。

With objButton.Object
    .Caption = "エラーチェック"
    .BackColor = "&H0080FF80&"
End With


▼ちゃっぴ さん:
>>でも、ここで、オブジェクトが必要です。というエラーで落ちてしまいます。
>>Set objButton = ActiveSheet.OLEObjects.Add _
>>         (ClassType:="Forms.CommandButton.1", Link:=False, _
>>          DisplayAsIcon:=False, Left:=108, Top:=14.25, _
>>          Width:=81, Height:=33.75)
>
>ActiveSheetが有効ではないのでは?
>ActiveSheet を Workbooks(ブック名).WorkSheets(シート名)
>に置き換えてから実行してみてください。
>
>あと、老婆心からですが・・・
>ActiveWorkbookやActiveSheetを繰り返すのはよくないと思います。
>一々アクティブになるので処理が非常に重くなります。
>
>Dim wbkBookA As WorkBook
>Dim wshSheetA As WorkSheet
>
>Set wbkBookA = WorkBooks(1)
>Set wshSheetA = wbkBookA.WorkSheets(1)
>
>のようにオブジェクト変数を用いて記述してみれば?
>速いですし、ソースが見やすくなりますよ♪

【13884】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 18:07 -

引用なし
パスワード
   >With objButton.Object
>    .Caption = "エラーチェック"
>    .BackColor = "&H0080FF80&"
>End With

ヘルプを確認しましょう

設定値

引数 long には、有効な色を表す任意の整数値を指定します。RGB 関数を使って色を指定することもできます。RGB 関数を使うときは、色の成分を赤、緑、青に分け、その組み合わせで色を指定します。それぞれの色成分は、0 〜 255 の整数値によって表します。たとえば、明るい緑色は、整数値 4966415 を使って指定するか、または RGB 関数を使って、赤、緑、青の各色成分を 15、200、75 として指定します。

となっていますので、設定値にはLong型で指定します。
"&H0080FF80&"は文字列型の引用記号""でくくってありますのでString型となります。

ちなみに"&H"とは、Long型16進データの型指定文字です。
つまり、&H0080FF80&は十進数化すると、8454016の値を返します。

電卓等で検証してみてください。

【13885】Re:コマンドボタンの内容変更について
お礼  WAKO  - 04/5/15(土) 18:20 -

引用なし
パスワード
   ▼ちゃっぴ さん:
長らくありがとうございました。
こんなに親切にしてくれてありがとうございます。
後は、何とかできると思います。
また、何かで困ったときは教えて下さい
ありがとうございました。


▼ちゃっぴ さん:
>>With objButton.Object
>>    .Caption = "エラーチェック"
>>    .BackColor = "&H0080FF80&"
>>End With
>
>ヘルプを確認しましょう
>
>設定値
>
>引数 long には、有効な色を表す任意の整数値を指定します。RGB 関数を使って色を指定することもできます。RGB 関数を使うときは、色の成分を赤、緑、青に分け、その組み合わせで色を指定します。それぞれの色成分は、0 〜 255 の整数値によって表します。たとえば、明るい緑色は、整数値 4966415 を使って指定するか、または RGB 関数を使って、赤、緑、青の各色成分を 15、200、75 として指定します。
>
>となっていますので、設定値にはLong型で指定します。
>"&H0080FF80&"は文字列型の引用記号""でくくってありますのでString型となります。
>
>ちなみに"&H"とは、Long型16進データの型指定文字です。
>つまり、&H0080FF80&は十進数化すると、8454016の値を返します。
>
>電卓等で検証してみてください。

【13886】Re:コマンドボタンの内容変更について
質問  WAKO  - 04/5/15(土) 18:31 -

引用なし
パスワード
   ▼ちゃっぴ さん:
すいません、私の端末にhelpがインストール
されておらず、現在自宅で、参考書に頼るしかない状態で
すいませんが教えていただけないでしょうか。

実は、ボタンのエラーチェックという文字
をゴシック、フォント12、太字 にしたいのですが
教えていただけないでしょうか。

helpはofficeからインストールするのですか。


>>With objButton.Object
>>    .Caption = "エラーチェック"
>>    .BackColor = "&H0080FF80&"
>>End With
>
>ヘルプを確認しましょう
>
>設定値
>
>引数 long には、有効な色を表す任意の整数値を指定します。RGB 関数を使って色を指定することもできます。RGB 関数を使うときは、色の成分を赤、緑、青に分け、その組み合わせで色を指定します。それぞれの色成分は、0 〜 255 の整数値によって表します。たとえば、明るい緑色は、整数値 4966415 を使って指定するか、または RGB 関数を使って、赤、緑、青の各色成分を 15、200、75 として指定します。
>
>となっていますので、設定値にはLong型で指定します。
>"&H0080FF80&"は文字列型の引用記号""でくくってありますのでString型となります。
>
>ちなみに"&H"とは、Long型16進データの型指定文字です。
>つまり、&H0080FF80&は十進数化すると、8454016の値を返します。
>
>電卓等で検証してみてください。

【13888】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 19:20 -

引用なし
パスワード
   ▼WAKO さん:
>▼ちゃっぴ さん:
>すいません、私の端末にhelpがインストール
>されておらず、

VBAを使いこなそうと思うなら必ずインストールしてください。

ここにも載ってますが・・・
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/off2000/vbaxl/html/xlproFont.asp

>helpはofficeからインストールするのですか。
はいCDからインストールしてください。

>実は、ボタンのエラーチェックという文字
>をゴシック、フォント12、太字 にしたいのですが
>教えていただけないでしょうか。

セルと同じです。

With objButton.Object
  .Caption = "エラーチェック"
  .BackColor = &H0080FF80&
  With .Font
    .Bold = True
    .Size = 12
    .Name = "フォント名"
  End With
End With

【13891】Re:コマンドボタンの内容変更について
お礼  WAKO  - 04/5/15(土) 19:30 -

引用なし
パスワード
   ▼ちゃっぴ さん:
何度もすいませんでした。
誠にありがとうございました。


>▼WAKO さん:
>>▼ちゃっぴ さん:
>>すいません、私の端末にhelpがインストール
>>されておらず、
>
>VBAを使いこなそうと思うなら必ずインストールしてください。
>
>ここにも載ってますが・・・
>http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/off2000/vbaxl/html/xlproFont.asp
>
>>helpはofficeからインストールするのですか。
>はいCDからインストールしてください。
>
>>実は、ボタンのエラーチェックという文字
>>をゴシック、フォント12、太字 にしたいのですが
>>教えていただけないでしょうか。
>
>セルと同じです。
>
>With objButton.Object
>  .Caption = "エラーチェック"
>  .BackColor = &H0080FF80&
>  With .Font
>    .Bold = True
>    .Size = 12
>    .Name = "フォント名"
>  End With
>End With

【13896】Re:コマンドボタンの内容変更について
質問  WAKO  - 04/5/15(土) 20:59 -

引用なし
パスワード
   ▼ちゃっぴ さん:
ソースをきれいにしようと、下のソースを参考にしているのですが、
wbkBook(1) = ThisWorkbook でオブジェクト変数または、with
ブロック変数が設定されていません で落ちてしまいます。

何か原因があるのでしょうか
よかったら教えて下さい


▼ちゃっぴ さん:
>オブジェクト変数を駆使して修正すると以下のようになります。
>
>ご参考までに・・・
>
>Private Sub Workbook_Open()
>
>  Dim w_シート名     As String
>  Dim objButton      As OLEObject
>  Dim wbkBook(1 To 2)   As Workbook
>  Dim wshTargetSheet   As Worksheet
>  
>  Application.ScreenUpdating = False   '画面更新の停止
>  Application.DisplayAlerts = False    '警告メッセージ非表示
>  
>  wbkBook(1) = ThisWorkbook
>  'ブックオープン
>  wbkBook(2) = Workbooks.Open("C:\WINDOWS\デスクトップ\単品.XLS")
>  
>  'シートコピー
>  wbkBook(2).Worksheets("Sheet1").Copy Before:=wbkBook(1).Worksheets(1)
>  
>  wbkBook(2).Close     'ブッククローズ
>  
>  With wshTargetSheet
>    .Rows("1:5").Insert Shift:=xlDown  '行の挿入
>    
>    wbkBook(1).Sheets("Sheet3").Range("A1:CL5").Copy _
>      Destination:=.Range("A2")    'データのコピー
>   
>    .Rows(1).RowHeight = 56.25      '行幅調整
>    
>    'コマンドボタンの挿入
>    Set objButton = .OLEObjects.Add _
>      (ClassType:="Forms.CommandButton.1", Link:=False, _
>        DisplayAsIcon:=False, Left:=108, Top:=14.25, _
>        Width:=81, Height:=33.75)
>  End With
>  
>  objButton.Object.Caption = "エラーチェック"  '表示名変更
>  
>  'マクロの記述
>  With wbkBook(1).VBProject.VBComponents.Item("Sheet1").CodeModule
>  
>    'マクロの 1 行目です。同様に 5 行目まで書き込みます。
>    .InsertLines 1, "Private Sub CommandButton1_Click()"
>    .InsertLines 2, ""
>    .InsertLines 3, " MsgBox ""セルの値が変更されました"""
>    .InsertLines 4, ""
>    .InsertLines 5, "End Sub"
>  End With
>  
>  wbkBook(1).Save  '保存
>  
>  オブジェクト変数初期化
>  Set wbkBook(1) = Nothing
>  Set wbkBook(2) = Nothing
>  Set wshTargetSheet = Nothing
>  Set objButton = Nothing
>  
>  Application.DisplayAlerts = True    '確認メッセージ非表示
>  Application.ScreenUpdating = True   '画面更新の再開
>  
>End Sub
>
>ね、シンプルになったでしょ♪

【13898】Re:コマンドボタンの内容変更について
回答  ちゃっぴ E-MAIL  - 04/5/15(土) 21:59 -

引用なし
パスワード
   修正しました。
>wbkBook(1) = ThisWorkbook でオブジェクト変数または、with
>ブロック変数が設定されていません で落ちてしまいます。

すいませんThisWorkBookは多分変数に格納できないです。
(ThisWorkBookは現在動作しているモジュールの格納されているブックを返します。)

ソースのwbkBook(1)をThisWorkbookで置換してやってください。
定義する必要ないので

後、ソースを見直したところwshTargetSheetが格納されていないことに気づきました。

Set wshTargetSheet = ThisWorkbook.Worksheets(1) '修正
を加えておいてください。

レベルアップのためにも使ったテクニック等は参考書を見るなどして
一度調べてから使用することをお勧めします。

【13899】Re:コマンドボタンの内容変更について
お礼  WAKO  - 04/5/15(土) 22:30 -

引用なし
パスワード
   ▼ちゃっぴ さん:
ありがとうございます。
本当に親切な人ですね。
今後も何かあったときは、どうかよろしくお願いします。


▼ちゃっぴ さん:
>修正しました。
>>wbkBook(1) = ThisWorkbook でオブジェクト変数または、with
>>ブロック変数が設定されていません で落ちてしまいます。
>
>すいませんThisWorkBookは多分変数に格納できないです。
>(ThisWorkBookは現在動作しているモジュールの格納されているブックを返します。)
>
>ソースのwbkBook(1)をThisWorkbookで置換してやってください。
>定義する必要ないので
>
>後、ソースを見直したところwshTargetSheetが格納されていないことに気づきました。
>
>Set wshTargetSheet = ThisWorkbook.Worksheets(1) '修正
>を加えておいてください。
>
>レベルアップのためにも使ったテクニック等は参考書を見るなどして
>一度調べてから使用することをお勧めします。

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