お世話になります
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- PHP imageフォルダに、画像をリサイズして保存する時のファイル名を変更したい 1 2023/05/30 11:39
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- Visual Basic(VBA) 【VBA】写真の縦横比を変えずに貼り付ける 5 2023/06/13 11:42
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- PHP 記述のおかしいところを教えて下さい。 1 2023/02/03 11:25
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【EXCEL VBA】ダブルクリックで...
-
【WPF】画像の切り替え
-
画像比較
-
C#で画像を他の画像に貼り付け...
-
EXCEL VBA 複数のImageコントロ...
-
vb.net 画像の透過について
-
背景画像の繰り返しについて
-
画像のピクセルデータの取得
-
VB6でプリントスクリーンを無効...
-
画像の上でペイント
-
最終行から最終列までを範囲指...
-
Excel ユーザーフォームで表示...
-
スライドショーの表示秒数につ...
-
ソースのどの部分を変更すれば...
-
EXCELに貼り付けた画像の位置を...
-
ImageMagickでgif画像の一部が...
-
画像の2次元フーリエ変換の結...
-
PowerPoint VBA で画像の鮮明度...
-
Active Basic 画像の透過処理
-
CSSの読み込みのタイムラグ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ImageMagickでgif画像の一部が...
-
Pythonでgif画像が上手く作れない
-
こんなことてしますか??
-
【EXCEL VBA】ダブルクリックで...
-
Excel ユーザーフォームで表示...
-
「using Windows」でエラーが出る
-
背景画像の繰り返しについて
-
【WPF】画像の切り替え
-
uwcs のマクロで画像認識をして...
-
uwscの画像認識に失敗します。
-
vb.net 画像の透過について
-
EXCEL VBA 複数のImageコントロ...
-
UWSC「画像が無い場合」
-
gif 画像上の ボタンに リン...
-
VBAのユーザーフォームのイメー...
-
VBA シート毎に画像挿入
-
画像処理したBitmapをピクチャ...
-
UWSC 画像判定と条件分岐について
-
UWSC 画像認識で条件分岐
-
自作の地図をグーグルマップの...
おすすめ情報