Excel VBA質問箱 IV

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

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


4503 / 13644 ツリー ←次へ | 前へ→

【56180】マクロボタンのコピーについて シェビー 08/6/8(日) 6:27 質問[未読]
【56224】Re:マクロボタンのコピーについて Jaka 08/6/9(月) 13:38 発言[未読]
【56230】Re:マクロボタンのコピーについて シェビー 08/6/9(月) 20:31 発言[未読]
【56250】Re:マクロボタンのコピーについて Jaka 08/6/11(水) 10:27 発言[未読]

【56180】マクロボタンのコピーについて
質問  シェビー  - 08/6/8(日) 6:27 -

引用なし
パスワード
   みなさんこんにちは 質問を投稿させていただきます。

下記のような記述があります

Private Sub CommandButton1_Click()

Dim MyIp As String, Sh As Worksheet, Fi As Range, Ad As String
Sheets(Array("あ", "か", "さ", "た", "な", "は", "ま", "や", "ら")).Select
MyIp = Application.InputBox("検索する品名を入力して下さい。")
If MyIp = "" Then Exit Sub
If MyIp = "False" Then Exit Sub

With Worksheets("閲覧")
   .Range("A2:IV65536").ClearContents
   For Each Sh In Worksheets
     If Sh.Name <> "閲覧" Then
      Set Fi = Sh.Cells.Find(MyIp, , xlValues, xlPart, , xlPrevious, MatchCase, False)
      If Not Fi Is Nothing Then
        Ad = Fi.Address
        Do
         Set Fi = Sh.Cells.FindNext(Fi)
         Fi.EntireRow.Copy Sheets("閲覧").Range("A65536").End(xlUp).Offset(1)
        Loop Until Ad = Fi.Address
        Set Fi = Nothing
      End If
     End If
   Next Sh
   .Activate
End With

End Sub

これで キーワードにより検索された各シートの行が 閲覧シートに
コピーされる仕組みです。

ところが 行の一部にマクロボタンがあるのですがその部分だけ
コピーされません。

なんとか他のフィールド同様マクロボタンも閲覧シートにコピー
するにはどうすればよいですか?

ちなみに マクロボタンにはマクロが割り当てられています。
よろしくお願いいたします。

【56224】Re:マクロボタンのコピーについて
発言  Jaka  - 08/6/9(月) 13:38 -

引用なし
パスワード
   >ちなみに マクロボタンにはマクロが割り当てられています。
???
意味がちょっと解りません。
アクティブX(コントロールツールボックスの方)のボタンですよね?
2002で試してみましたが、手動でもコピーされないですね。
フォームの方のボタンなら、図形類と同じですからコピーされましたけど。
(ツール → オプション → 編集の「オブジェクトをセル共に切り取り・・・
 にチェックが入っていないとダメだけど。)

アクティブXのボタンなら固体でコピーしないとダメみたいですね。
でもコピー先のシートモジュールにコードが書いてないと動かないと思います。

ActiveSheet.OLEObjects("CommandButton1").Copy
Worksheets("閲覧").Range("B3").PasteSpecial

どんな種類のボタンなのか書いておいた方が良いです。

【56230】Re:マクロボタンのコピーについて
発言  シェビー  - 08/6/9(月) 20:31 -

引用なし
パスワード
   Jakaさん 返信ありがとうございます
誰も回答をくださらないので不安になっておりました
>>アクティブX(コントロールツールボックスの方)のボタンですよね?
そうです コントロールツールボックスのコマンドボタンです。

ちなみにExcelシートは
   A    B    C      D
   ア    棚   ボタン     色 
1 アイイチ  AB  コマンドボタン  白
2 アイニ   AB1  コマンドボタン  赤 
3 アイサン  AB2  コマンドボタン  黄

などのように配列されています
このシートが あ い う・・・という具合に並んでいます
Cのボタンの部分にマクロが適応されたボタンが当てられています
これをシート上の別のコマンドボタンをクリックすることによりマクロが
動き、文字を入れることにより検索が行われ”配列”シートにコピーされる
仕組みです。
要は複数のシートの中から文字を入れることにより検索を行おうということ
です。
ここで問題なのは A B Dのフィールドはコピーされる
のですがCのボタンだけコピーされません。
回答いただいた構文を入れて実行させてみました、確かにコピーは
されますが配列を無視された場所にコピーされるようです。
またコピーされたボタンにはマクロが登録されていないようです。
すいません ご理解いただけましたでしょうか?
よろしくお願いいたします。

【56250】Re:マクロボタンのコピーについて
発言  Jaka  - 08/6/11(水) 10:27 -

引用なし
パスワード
   ▼シェビー さん:
>またコピーされたボタンにはマクロが登録されていないようです。
ご自分でもマクロ登録してないわけですよね。
自分でマクロ登録してないものに勝手にマクロ登録去れと思えませんが...。

至極簡単にアクティブXコントロールのボタンにマクロ登録できるとは
思えないし、(簡単といっちゃ―簡単ですけど。)
アクティブXコントロールのボタンにマクロ登録して使おうと思われる方は、
ほとんどといないと思います。
マクロ登録して使いたいのなら、フォームの方を使ってください。

私には下の事をうまく説明できそうに無いので、
通常のアクティブXコントロールのボタンの使い方や
通常のマクロ登録の方法などを勉強された方が良いかもです。

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