A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんにちは。
お邪魔します。> マイクロソフトの前回の問題と関係するのでしょうか?
2014/12/9のOfficeセキュリティ更新プログラムによるActiveXコントロールの一連の不具合のことでしょうか?
http://support.microsoft.com/kb/2553154
だとすると、対策はお済みでしょうか?
http://support.microsoft.com/kb/3025036/ja
それでも尚「CommandButton21問題」
(従来のコントロール名の後ろに"2"が付いた名前に変更された為コントロールの付番が"21"から始まるように見える)
等、未だ解決していない問題が幾つか残っているようですが、、、。
今回の問題の原因については、2014/12/9のアップデートであると、
特定できるまでの情報がありませんので、ハッキリとした回答は出来ません。
現在お使いのWindowsやOfficeのバージョン?、それぞれ32or64ビット?、
2003で作成したブックを2007以降のバージョン[Excel 97-2003 ブック (*.xls)]形式で保存し直しているのかどうか?、
それとも[Excel 97-2003 テンプレート (*.xlt)]なのか?
コピー元のシートにはFrameコントロール上にコントロールを配置しているか?、
等によっても、違いが出てくるのではないでしょうか。
> サンプルとして用意した当番表のシートを実際の月当番表を作成するときに、シートのコピーをして作成します。シートはコピーされたのですが、そのシートに張り付けた印刷ボタン(クリックすると自動印刷)が今まで一緒にコピーされたのですが、コピーされません。
2014/12/9のアップデートが原因である場合、
「シートはコピー出来るのにコントロールだけコピーできない」
という現象は、私の方では確認出来ませんし、ちょっと考えにくいです。
「コントロールだけコピーできない」という
現象そのものは、以前からよく質問される課題ですので、まずは定番の手順で確認をしてみてください。
Excelのオプション設定を、気づかない内に、
(コントロールをコピーしないように)変更してしまっていた場合
(もし、そうでなければ、オプション設定や警告ダイアログに関する言及がある筈です)
というのが、質問された多くのケースで原因となっていたこと、です。
XL2003なら
[ツール]→[オプション]→[編集]
↓[□オブジェクトをセルとともに切り取り、コピー、並べ替える]
XL2010なら
[ファイル]タブ→[オプション]→[詳細設定]→[切り取り、コピー、貼り付け]
↓[□挿入したオブジェクトをセルと共に切り取り、コピー、並べ替えを行う(_O)]
の、チェックを外れていまっているのを、チェックし直す、
または、いずれのバージョンでも、VBAから、
Application.CopyObjectsWithCells = True
を実行する
等の手順で、シートのコピー時にコントロールもコピーされる状態に通常は戻せます。
"シートはコピーされたのですが、そのシートに張り付けた印刷ボタン...が...コピーされません。"
という説明からすると、以上の確認が先決です。
> コピーされていた古いファイルでしても同様です。
この記述の意味が私には汲み取れていません。ですので、もし見当違いでしたら、すみません。
が、状況に依っては、以上の手当てで解決する可能性もあるのかと。
次に、質問文の説明とは食い違うので、余談、ということになりますが、
「コントロールごとシートのコピーはされるがコントロールが機能しない」
というケースだった場合の話ですと、、、
MSForms.exd削除済みのWin7/Xl2010x64で、XL2003で作成した旧いブックをコピー元にして
Workbooks.Open Filename:=""コピー元ブック名.xls"
With Workbooks("コピー先ブック名.xlsm")
Workbooks("コピー元ブック名.xls").Worksheets("コピー元シート名").Copy After:=.Worksheets(.Worksheets.Count)
End With
というような記述を実行して確かめましたが、
(コピー元ブックでは[セキュリティ]の警告が表示されたままになるものの)
シートもActiveXコントロール(昔のツールバーコントロール)も見た目上は複製されました。
但し、コピー後の新しいシート上ではActiveXコントロールが機能しません。
これを機能させる為の応急処置としては、以下の手順。
[ファイル]タブ→[オプション]→[セキュリティセンター]→[セキュリティセンターの設定]
↓[ActiveXの設定]
↓[□先に確認メッセージを表示してから、初期化に危険が伴うコントロールには制限を強化し、初期化しても安全なコントロールには最低限の制限を適用して有効にする(_R)]
にチェックが入っているものを替えて
↓[□確認メッセージを表示せずに、すべてのコントロールを制限なしに有効にする(推奨しません。危険なコントトールが実行される可能性があります)(_E)]
をチェックしておいてから、シートをコピーするマクロを実行します。
これで、コピー直後からActiveXコントロールが機能するようになりますが、
説明にもある通り、セキュリティ上の不安は拭えない状態での、暫定的な対応ということになりますから、
セキュリティ環境の確認を含めて、よく検討した上で採否を見極めるようにしてください。
あくまでも暫定的な対策として、例えば急いで処理したい時の一時的な方法として紹介しているだけです。
MS側で今後対策の予定があるかどうか、この他により安全な方法があるかどうか、
私には、解りませんし、知り得る立場でもありません。
ただ元々がセキュリティ対策としての改編だったことを考えると、
ActiveXコントロールの新旧バージョン間の互換については、
新たなMSによる積極的な対策対応について(少なくとも至近では)
期待できないものだとは私は思っています。
〓抜本的な対策〓としては、
新しいバージョン側で新規に[名前を付けて保存](作成し直す)ことを、
どこかのタイミングで検討した方がよいのかも知れません。
その方が確実なのとすぐに結果が欲しかったので、無駄になるかも知れないとは思いつつ、
私の周辺では新バージョン導入直後に、
(場合によっては警告ダイアログ上で[コンテンツの有効化]ボタン等を経て)
〓[Excel 97-2003 ブック (*.xls)]を現行の[Excel マクロ有効ブック (*.xlsm)]に書換えて〓、
対策しました(ActiveXコントロールの互換の問題は以前からありましたから)。
なので、今回の問題を再現することも私の環境では簡単ではないので、
確度の高い話は出来ませんが、今の私としては、このような回答になります。
最後に、
「Frameコントロール上に配置したコントロールだけが消えてしまう」
ということでしたらば
(Frameコントロールは本来ボタンを配置する為のものではないので話が違うでしょうけれど)
私が今知っている限りでは、新しいバージョンのブックとして、
改めてコントロールを挿入し直す、という方法ぐらいしかないように思います。
尚もお困りでしたら、補足欄にでも書いてみて下さい。
No.1
- 回答日時:
12月の更新ファイルによる不具合の対処をしてあれば大丈夫だとおもいますが
対処済みでもそうなるのですか?
そうであれば、2010版などの新しいBookにVBAコードをコピーして使えるようにするだけで済むはずです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Excel(エクセル) シートが違う2枚のエクセルシートにある数値を別シートにコピーしたい(VBA?) 8 2022/03/31 12:24
- Excel(エクセル) VBA ふたつの同じ様式シートのセルをコピーしたい 2 2023/03/08 15:28
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Excel(エクセル) Excelで質問です! 現在マクロを勉強中の初心者です。 以下のような表から、会社名が空白のもの以外 2 2022/06/14 12:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) Excel シート複数 金額日計表と日付 簡単にシートコピーしたら前日の残高と日付を変更させたい 1 2022/07/15 22:10
- Visual Basic(VBA) Excel VBA 最終行を取得しVlookup関数をコピーする方法をコーディングで教えてください。 3 2023/05/11 13:14
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
-
-
4
EXCEL VBA コントロールのコピー&ペースト
Excel(エクセル)
-
5
Excel VBA --- コマンドボタンが表示上で消える ---
Excel(エクセル)
-
6
コンボボックスにリストが表示されません・・・
Excel(エクセル)
-
7
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
8
VBA シートをコピー後、ボタンにマクロ登録
Excel(エクセル)
-
9
UserForm1.Showでエラーになります。
工学
-
10
【Excel VBA】シートコピー時、マクロコードはコピーしたくない
Access(アクセス)
-
11
(Excel VBA)シートコピー時マクロはコピーしたくない
Excel(エクセル)
-
12
VBAでワークシートを引数としてサンプル関数に渡したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseのコード入力時の、行コ...
-
Listviewに表示された文字のコ...
-
エクセルVBA 実行時エラー'...
-
一行おきに貼り付ける 可能でし...
-
C++言語で、構造体のコピーは可...
-
DataTableに入っているデータを...
-
Ctrl + Cなど複数の入力キー...
-
arduino unoからデータを読み出...
-
他プロジェクトのFormを自プロ...
-
Activesheet.Pasteで困っています
-
Eclipseでコピーするとき行数な...
-
Access VBAから使用したExcelプ...
-
EXCEL VBAで複数行のコピー(...
-
テキストエディタのAtomはコピ...
-
OutlookVBAでコピーした文字を...
-
バッチで当日日付で作成される...
-
シートに張り付けたボタンがシ...
-
プログラムについて。
-
【UWSC】WEBページ内コピーした...
-
ブラウザからコピペすると文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C++言語で、構造体のコピーは可...
-
Access VBAから使用したExcelプ...
-
マウントしたディスクにcpで、...
-
一行おきに貼り付ける 可能でし...
-
Activesheet.Pasteで困っています
-
Listviewに表示された文字のコ...
-
エクセルVBA 実行時エラー'...
-
DataTableに入っているデータを...
-
Eclipseのコード入力時の、行コ...
-
Ctrl + Cなど複数の入力キー...
-
文字列の切り出し
-
arduino unoからデータを読み出...
-
バッチで当日日付で作成される...
-
jakarta poiを使用し、EXCELの...
-
シートに張り付けたボタンがシ...
-
【UWSC】WEBページ内コピーした...
-
Eclipseでコピーするとき行数な...
-
エクセルのマクロについて教え...
-
Excelでコピーしたセル(テキス...
-
OutlookVBAでコピーした文字を...
おすすめ情報