お世話になります
VB6での画像のサイズ変更に関して教えていただけないでしょうか
機能としては、画像を読み込み、指定サイズ枠内のサイズで一旦フォームに表示して画像を確認
問題なければ、エクセルに保存なのですが
フォーム表示時にサイズを変更したにも関わらず、
エクセルに保存すると、元画像のサイズで保存されてしまいます。
表示と保存を同じtwip幅にするにはどのようにしたらよろしいでしょうか
******** 画像読み込み&リサイズ抜粋
Me.CDialog.CancelError = True
Me.CDialog.Flags = cdlOFNExplorer + cdlOFNLongNames + cdlOFNHideReadOnly + cdlOFNNoChangeDir + cdlOFNFileMustExist
Me.CDialog.Filter = strMessage(33) & "(*.jpg;*.bmp)|*.jpg;*.bmp"
Me.CDialog.Filename = ""
Me.CDialog.ShowOpen
Me.CDialog.Flags = 0
If Err Then
Err.Clear
On Error GoTo 0
Exit Sub
End If
If Trim(Me.CDialog.Filename) = "" Then
On Error GoTo 0
Exit Sub
End If
' 画像の比率を保って、画像をセットする
Me.PImage(Index).Stretch = False ' 一旦元の大きさで読み込み指定
Me.PImage(Index).Visible = False ' 一旦非表示にする
Me.PImage(Index).Picture = LoadPicture(Me.CDialog.Filename)
' 縦方向基準縮尺変更
If Me.PImage(Index).Height > Report_PImageHei Then
Me.PImage(Index).Stretch = True
HWTemp = Me.PImage(Index).Height
Me.PImage(Index).Height = Report_PImageHei
Me.PImage(Index).Width = Me.PImage(Index).Width * Me.PImage(Index).Height / HWTemp
End If
' 横方向基準縮尺変更
If Me.PImage(Index).Width > Report_PImageWid Then
HWTemp = Me.PImage(Index).Width
Me.PImage(Index).Stretch = True
Me.PImage(Index).Width = Report_PImageWid
Me.PImage(Index).Height = Me.PImage(Index).Height * Me.PImage(Index).Width / HWTemp
End If
********* エクセルへの出力抜粋(上記と別関数)
Clipboard.Clear
Clipboard.SetData Me.PImage(i).Picture
WB.ActiveSheet.Cells(YY1, XX1).Select
WB.ActiveSheet.Paste
pict = Selection.Name
Clipboard.Clear
No.1ベストアンサー
- 回答日時:
私のPCにVB6の環境が無い為、以下では動かないかもしれませんが、参考になればと思います。
'PictureMotoに読み取る
PictureMoto.Picture = LoadPicture(Me.CDialog.Filename)
Me.PImage(Index).Stretch = FALSE
Me.PImage(Index).Width = intDrawPictureWidth
Me.PImage(Index).Height = intDrawPictureHeight
'縮小して画像描画
Me.PImage(Index).PaintPicture PictureMoto.Picture, 0, 0, intDrawPictureWidth, intDrawPictureHeight
P.S.
Stretchは表示サイズを変更しているだけで、元の画像はサイズ変更していないと認識しております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
字面がカッコいい英単語
あなたが思う「字面がカッコいい英単語」を教えてください。
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
ピクチャーボックスの大きさに合わせて画像を表示
Visual Basic(VBA)
-
[VB6]画像切り取り
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
背景画像の繰り返しについて
-
【WPF】画像の切り替え
-
スマホでサイトの画像を長押し→...
-
PowerPoint VBA で画像の鮮明度...
-
vb.net 画像の透過について
-
jqueryスライダーを2段でスライ...
-
Excelで画像クリックのアテンシ...
-
OpenCVの透過処理
-
EXCEL VBA 複数のImageコントロ...
-
ImageMagickでgif画像の一部が...
-
パネルに画像
-
UWSCでループ処理がうまくいき...
-
画像の輝度値のプログラムにつ...
-
画像を二値化した後、黒の部分...
-
【EXCEL VBA】ダブルクリックで...
-
画像を表示するには
-
画像の重ね合わせがうまくでき...
-
VBAのユーザーフォームのイメー...
-
【VBA】Excel2016で画像を一括...
-
OpenCV でのROIの指定方法について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel ユーザーフォームで表示...
-
背景画像の繰り返しについて
-
uwcs のマクロで画像認識をして...
-
vb.net 画像の透過について
-
EXCEL VBA 複数のImageコントロ...
-
UWSC 画像判定と条件分岐について
-
「using Windows」でエラーが出る
-
VBAのユーザーフォームのイメー...
-
UWSC 画像認識で条件分岐
-
UWSCでループ処理がうまくいき...
-
uwscの画像認識に失敗します。
-
【EXCEL VBA】ダブルクリックで...
-
画像処理したBitmapをピクチャ...
-
UWSC「画像が無い場合」
-
UWSCの画像認識と条件分岐につ...
-
UWSCの色判定
-
gif 画像上の ボタンに リン...
-
jqueryスライダーを2段でスライ...
-
同じ画像を複数回表示させる
-
【WPF】画像の切り替え
おすすめ情報