Excel VBA質問箱 IV

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

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


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

【43892】写真の台帳(アルバム)の作り方 ぺが 06/10/28(土) 16:28 質問[未読]
【43893】Re:写真の台帳(アルバム)の作り方 ぱっせんじゃー 06/10/28(土) 17:07 発言[未読]
【43910】Re:写真の台帳(アルバム)の作り方 Mk 06/10/29(日) 9:28 発言[未読]
【43911】Re:写真の台帳(アルバム)の作り方 ぱっせんじゃー 06/10/29(日) 9:53 発言[未読]
【43934】Re:写真の台帳(アルバム)の作り方 ぺが 06/10/30(月) 9:41 お礼[未読]
【43972】Re:写真の台帳(アルバム)の作り方 ぺが 06/10/31(火) 13:55 お礼[未読]
【43974】Re:写真の台帳(アルバム)の作り方 Kein 06/10/31(火) 15:09 発言[未読]
【44035】Re:写真の台帳(アルバム)の作り方 ぺが 06/11/1(水) 14:40 質問[未読]

【43892】写真の台帳(アルバム)の作り方
質問  ぺが  - 06/10/28(土) 16:28 -

引用なし
パスワード
   はじめまして。VBAは初めてに近いです。マクロの記録で簡単なものを作るだけで、細かい記述の修正等はできません。
・・工事写真の台帳(アルバム)を作成していまして、写真を取り入れたいセルをクリックすると、任意の写真をそのセルに取り入れることができて、さらにそのセルのサイズに合わせて、写真が小さく(大きく)なるという、それだけのことをマクロに記録したいのです。が、これらの一連の操作を記録するとどうしても、実行時にはそのときに選んだ写真だけしか挿入することができません。写真を選ぶ時点で一度休止させ、選んだ後に再開させる方法はないでしょうか。

【43893】Re:写真の台帳(アルバム)の作り方
発言  ぱっせんじゃー  - 06/10/28(土) 17:07 -

引用なし
パスワード
   挿入する画像の選択はこんな方法で出来ます。


Sub test()
 Dim f As String
  f = Application.GetOpenFilename("JPGファイル (*.jpg), *.jpg")
  If f <> "False" Then
    MsgBox f
  Else
    MsgBox "キャンセル"
    Exit Sub
  End If
End Sub

【43910】Re:写真の台帳(アルバム)の作り方
発言  Mk  - 06/10/29(日) 9:28 -

引用なし
パスワード
   >・・工事写真の台帳(アルバム)を作成していまして、写真を取り入れたいセルをクリックすると、任意の写真をそのセルに取り入れることができて
マクロの記録で写真を取り入れたのでしょうか?だったら・・・
後は写真のファイルNoを変数にすると自在に写真選択が出来ると思いますが・・・

、さらにそのセルのサイズに合わせて、写真が小さく(大きく)なるという、それだけのことをマクロに記録したいのです。が、

Selection.ShapeRange.LockAspectRatio = msoTrue
Selection.ShapeRange.Height = Range("C4").Value '高さ設定
こんな感じでは、

>これらの一連の操作を記録するとどうしても、実行時にはそのときに選んだ写真だけしか挿入することができません。写真を選ぶ時点で一度休止させ、選んだ後に再開させる方法はないでしょうか。
ちょっと意味が分かりにくいですが・・・

質問が漠然としていて解答しにくいのでは?っと思います。
再度具体的にファイルの状態やコードをどのように書かれているか
明示されると、もっと内容のある解答があると思いますが・・・

【43911】Re:写真の台帳(アルバム)の作り方
発言  ぱっせんじゃー  - 06/10/29(日) 9:53 -

引用なし
パスワード
   >Selection.ShapeRange.Height = Range("C4").Value '高さ設定

C4セルの値が""だったらエラーになりませんか?
Selection.ShapeRange.Height = Range("C4").Offset(1).Top - Range("C4").Top
のようにしたらセル高に合わせられます。

マクロの自動記録では、固定のファイルしか挿入できないので、
任意に選択した画像ファイルを挿入したい、
任意に選択した画像ファイルを挿入させるにはどうしたらいいか、
という質問だと捉えました。

私の先ほどの回答にも今回の回答にも"内容"はないかもしれませんが。

【43934】Re:写真の台帳(アルバム)の作り方
お礼  ぺが  - 06/10/30(月) 9:41 -

引用なし
パスワード
   ありがとうございます\(^o^)/
そうですよね・・・漠然として分かりませんよね。
でも、私の思った様に解釈していただいて感謝です。

実は・・・、これから試してみるんです。実行してみてから、
もう一度お邪魔して報告したいと思います。
わたしの訳の分からない質問に、知らない間にこんなにご回答頂いて、
ありがとうございましたm(__)m
とりあえず、お礼まで。

【43972】Re:写真の台帳(アルバム)の作り方
お礼  ぺが  - 06/10/31(火) 13:55 -

引用なし
パスワード
   できました!!
こんな感じです。
Sub test()
'
' test Macro
' マクロ記録日 : 2006/10/31 ユーザー名 : ibm
'

'
  Dim f As String
   f = Application.GetOpenFilename("(*.jpg),*.jpg")
   If f <> "False" Then
     MsgBox f
     ActiveSheet.Pictures.Insert(f).Select
     Selection.ShapeRange.LockAspectRatio = msoTrue
     Selection.ShapeRange.Height = Range("B5").Offset(1).Top - Range("B5").Top
   Else
     MsgBox "キャンセル"
     Exit Sub
   End If


End Sub

とりあえず第一段階はクリアです。
この次はこれらの操作が画面上でもう少しスマートに見えるように、工夫してみます。
すぐには頼らずに少し勉強してみます。
でも、すごく助かりました。
ぱっせんじゃーさん、Mkさん、どうもありがとうございましたm(__)m

【43974】Re:写真の台帳(アルバム)の作り方
発言  Kein  - 06/10/31(火) 15:09 -

引用なし
パスワード
   ダブルクリックイベントを使って、結合したセルの中心部分に画像ファイルを
挿入する。という質問に答えたログ↓があります。参考にして下さい。
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=43492;id=excel

【44035】Re:写真の台帳(アルバム)の作り方
質問  ぺが  - 06/11/1(水) 14:40 -

引用なし
パスワード
   ▼Kein さん:
>ダブルクリックイベントを使って、結合したセルの中心部分に画像ファイルを
>挿入する。という質問に答えたログ↓があります。参考にして下さい。
>http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=43492;id=excel

ご親切にありがとうございます。お礼ついでといっては何なのですが、
99%初心者なので、どの行にどのように活かしていいのか分かりません(^^ゞ
私が実行したコードに組み込めるのであれば、どこの行にどの部分を組み込むのか
教えてください。確かに中心部に画像ファイルを挿入できるのは理想的です。
どうしても左側によってしまうので、実は悩んでいたところです。

もう一つ聞いてもいいですか?
Keinさんに教えていただく前の状態でいいますと、
サイズの大きい写真は一度、そのサイズのまま(大きいまま)画面に表示され、
それからセルの高さにあわせるので、画面上は見苦しいです。
VBAにおいては何と言うのか分かりませんが、
ディスプレイをオフにした状態で、画面上では写真が大きいまま表示される
部分は省略され、いきなりセルのサイズの写真が表示されるという方法はありますか?
やっぱり DISPOFF とかいうんでしょうか・・・。

ちなみに今現在使用しているコードはこんな感じです。
Private Sub CommandButton1_Click()

  Dim f As String
   f = Application.GetOpenFilename("(*.jpg),*.jpg")
   If f <> "False" Then
     Range("B4").Select
     MsgBox f
     ActiveSheet.Pictures.Insert(f).Select
     Selection.ShapeRange.LockAspectRatio = msoTrue
     Selection.ShapeRange.Height = Range("B4").Offset(1).Top - Range("B4").Top
   Else
     MsgBox "キャンセル"
     Exit Sub
   End If

End Sub

よろしくお願いします。

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