Excel VBA質問箱 IV

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

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


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

【10210】カメラ機能 たま 04/1/12(月) 15:56 発言
【10212】Re:カメラ機能 りん 04/1/12(月) 19:18 回答
【10215】Re:カメラ機能 kein 04/1/12(月) 19:48 回答
【10216】Re:カメラ機能 ichinose 04/1/12(月) 19:50 回答
【10225】Re:カメラ機能 たま 04/1/13(火) 14:34 お礼

【10210】カメラ機能
発言  たま  - 04/1/12(月) 15:56 -

引用なし
パスワード
   Excel2000でカメラ機能をマクロで記録しようとしても出来ません。
何か良い方法はありますでしょうか?

また、カメラ機能が記録出来ないので同じBOOKを2つのWINDOWで左右に並べて表示し
表示倍率の差をつけて擬似的にカメラ機能を作成しようと思ったのですが、
WINDOW1の倍率を25%で表示し
WINDOW2の倍率を100%で表示して
(ココまで何とか完成)
WINDOW1( 25%)で選択した範囲(セル)を
WINDOW2(100%)で画面上に一瞬で表示させたいのですが
色々試しても分かりません。
どなたかご教授願えないでしょうか?

【10212】Re:カメラ機能
回答  りん E-MAIL  - 04/1/12(月) 19:18 -

引用なし
パスワード
   たま さん、こんばんわ。

>Excel2000でカメラ機能をマクロで記録しようとしても出来ません。

図のリンク貼り付けを記録してちょっと編集したらこんな感じです。
Sub Macro1()
  Range("A1:B10").Copy
  Range("D1").Select
  ActiveSheet.Pictures.Paste(Link:=True).Select
End Sub

V3ログをカメラで検索して見つけた関連ツリー
http://www21.tok2.com/home/vbalab/bbs/c-board.cgi?cmd=ntr;tree=10913;id=Excel
XL2000でなくても記録できないようです。

【10215】Re:カメラ機能
回答  kein  - 04/1/12(月) 19:48 -

引用なし
パスワード
   Excel95以前の CopyPictureメソッドが使えると思います。以下にヘルプの記述を
貼りつけておきます。

オブジェクトをクリップボードへピクチャ(画像) (Picture オブジェクト) として
コピーします。構文 1 では、Chart オブジェクト以外のすべてのオブジェクトを
対象にします。
構文 2 では、Chart オブジェクトだけを対象とします。

構文 1

object.CopyPicture(appearance, format)

構文 2

object.CopyPicture(appearance, format, size)

object

必ず指定します。コピーするオブジェクトを指定します。

appearance

省略可能です。ピクチャのコピー形式を指定します。xlScreen を指定するか
省略すると、ピクチャは画面の表示にできるだけ近い形でコピーされます。
xlPrinter を指定すると、ピクチャは印刷するときと同じ形でコピーされます。

format

省略可能です。ピクチャの形式 (xlPicture または xlBitmap) を指定します。
この引数を省略すると、ピクチャ形式でコピーされます。

size

省略可能です。グラフ シートの Chart オブジェクト (ワークシートの埋め込み
グラフのピクチャではありません) のピクチャのコピーのサイズを指定します。
xlPrinter を指定するか省略すると、ピクチャは印刷するときの大きさでコピー
されます。xlScreen を指定すると、ピクチャは画面に表示されているものと同じ
大きさでコピーされます。

解説

CopyPicture メソッドは、コピーするオブジェクトの種類にかかわらず、クリップ
ボードに Picture オブジェクトを作成します。
セル範囲をコピーするときは、コピーするセルが連続している必要があります。

【10216】Re:カメラ機能
回答  ichinose  - 04/1/12(月) 19:50 -

引用なし
パスワード
   たま さん、りんさん、こんばんは。
>また、カメラ機能が記録出来ないので同じBOOKを2つのWINDOWで左右に並べて表示し
>表示倍率の差をつけて擬似的にカメラ機能を作成しようと思ったのですが、
>WINDOW1の倍率を25%で表示し
>WINDOW2の倍率を100%で表示して
>(ココまで何とか完成)
>WINDOW1( 25%)で選択した範囲(セル)を
>WINDOW2(100%)で画面上に一瞬で表示させたいのですが
>色々試しても分かりません。
↑の方です。
「WINDOW1の倍率を25%」のウインドウをアクティブにし、
「WINDOW2の倍率を100%」のウィンドウに反映させたいセル範囲を選択した状態で
以下のコードを実行して下さい。
'===============================================================
Sub test()
  myadd = Selection.Address
  ThisWorkbook.Windows("100%ズーム").Activate
'              ↑該当する名前に変えてね
  Application.Goto Range(myadd), True
  With ThisWorkbook
    Call dist_win(.Windows("25%ズーム"), .Windows("100%ズーム"))
'                 両方、該当する名前に変えてください
    End With
End Sub
'==============================================================
Sub dist_win(ParamArray mywin())
'       ↑三つ以上のウインドウでも対応できるようにしときました。
  Application.ScreenUpdating = False
  On Error Resume Next
  For Each x In Application.Windows
   x.WindowState = xlMinimized
   Next x
  On Error GoTo 0
  For idx = UBound(mywin()) To LBound(mywin()) Step -1
   With mywin(idx)
    .WindowState = xlNormal
    End With
   Next
  Application.Windows.Arrange ArrangeStyle:=xlVertical
  Application.ScreenUpdating = True
End Sub

確認してください。

【10225】Re:カメラ機能
お礼  たま  - 04/1/13(火) 14:34 -

引用なし
パスワード
   素早い回答有難う御座います。

りんさん
一応、検索したつもりだったんですが甘かったみたいですいません。
関連ツリーのリンク有難う御座います。
keinさん
丁寧に解説まで入れていただき有難うございます。
ichinoseさん
バッチリ動きました。感動もんです。
注文以上の事まで出来る様にしていただいて感謝です。

また、何か質問する事があったら宜しくお願いします。
次はキチッと検索してからきますです。

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