[[20180910152338]] 『画像 一括トリミング』(がんばる事務員) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『画像 一括トリミング』(がんばる事務員)

下記の過去ログと同様のマクロを作成したいのですが、
過去に質問した方は自己解決できたみたいで、、
私もユーザフォーにに挑戦したのですが、

下記のマクロには最初から上下左右の数値が入っている為、ボックスへどうやって連携させたらよいか分かりませんでした。。

実行を押したらユーザフォームが出てきて
上下右左を入力して実行したら 画像がトリミングされるというようなマクロを作りたいです。

お力をお貸しください。

[[20171113123533]]

『ボックスを出して、値を反映させたい』(すう)

当方初心者です。
ネットから教えてもらい、反映させることはできますが、自分で入力したりできません。

複数画像の一括トリミングについてですが、

Sub 画像トリミング

With Selection

.ShapeRange.LockAspectRatio = True

.ShapeRange.PictureFormat.CropTop = 100#

 .ShapeRange.PictureFormat.CropBottom = 100# 
 .ShapeRange.PictureFormat.CropRight = 150# 
 .ShapeRange.PictureFormat.CropLeft = 150# 
 .ShapeRange.LockAspectRatio = msoFalse 

End With

 End Sub 

これでようやく2016でも複数画像一括でトリミングができるようになりました。

 今までは2007でセルに張り付けた複数画像の上下左右を一括でトリミングしていたのですが、2016に上下左右無くて困っていて、いまだに2007を使い続けていました。 

ようやくF5のオブジェクト選択からの処理で一括できたのですが、

この100# の部分を 実行するときビョコっと入力するボックスが出て、数値をそれぞれ入力できるようにしたいのですが、わかりません。

お力をお貸しください。

< 使用 Excel:Excel2016、使用 OS:Windows10 >

< 使用 Excel:Excel2010、使用 OS:Windows7 >


引用符(>)を付けて表現するならまだ判りますが、他の書き込みを丸ごとコピペしても、判りにくいだけですよ。 元質問へのリンクをつけてあれば、それだけで十分です。

そして、判らないのは何処でしょう? ユーザーフォームの起動の仕方ですか? テキストボックスの配置ですか? 実行するコードは元質問のままで良いから、判りますよね?

変えるのは、4つの値を入力するために4つのテキストボックスを貼っておき、固定値の代わりに TextBox1.Text のように、入力した値を代入するところだけかと思います。
(???) 2018/09/10(月) 16:49


???さま

ご回答ありがとうございます。
マクロ初心者で手さぐりでやっている所なのですが、
分からない部分は、上下左右の数値が入っている場所へ、ボックスへどうやって連携させたらよいか分かりませんでした。。

>変えるのは、4つの値を入力するために4つのテキストボックスを貼っておき、固定値の代わりに TextBox1.Text のように、入力した値を代入するところだけかと思います。

下記のようにすればOKということでしょうか?

.ShapeRange.PictureFormat.CropBottom = 100#

                               ↓        

.ShapeRange.PictureFormat.CropBottom = TextBox1.Text

(がんばる事務員) 2018/09/11(火) 09:34


その通りですが、何か問題がありましたか?

元は標準モジュールにでも書いてあったと思いますが、ユーザーフォームを表示したのだから、ユーザーフォーム上のボタンを押すと実行、のように変えているはず。 現在はどこにどんなコードを書いて、実行するとどうなっているのでしょう?

例えば、シートにActiveXのボタンを貼っておき、押すとフォーム表示する例。

 【シートモジュール】
 Private Sub CommandButton1_Click()
    ActiveSheet.Shapes.Range(Array("Picture 1", "Picture 2")).Select
    UserForm1.Show vbModal
 End Sub

 【UserForm1】
 Private Sub UserForm_Initialize()
    TextBox1.Text = "100"
    TextBox2.Text = "100"
    TextBox3.Text = "150"
    TextBox4.Text = "150"
 End Sub

 Private Sub CommandButton1_Click()
    With Selection
        .ShapeRange.LockAspectRatio = True
        .ShapeRange.PictureFormat.CropTop = TextBox1.Text
        .ShapeRange.PictureFormat.CropBottom = TextBox2.Text
        .ShapeRange.PictureFormat.CropRight = TextBox3.Text
        .ShapeRange.PictureFormat.CropLeft = TextBox4.Text
        .ShapeRange.LockAspectRatio = msoFalse
    End With
 End Sub
(???) 2018/09/11(火) 10:44

???さま

ご返信おそくなってすみません。

「100#」のところを「TextBox1.Text 」に変更したら
思い通りにうごきました!

大変たすかりました!

(がんばる事務員) 2018/09/13(木) 14:22


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.