[[20190620152811]] 『マクロのPictureFormatで行うコントラスト調整にax(Tarou) ページの最後に飛ぶ

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

 

『マクロのPictureFormatで行うコントラスト調整について』(Tarou)

はじめまして、初心者すぎて申し訳ないのですが、質問させていただきます

検索からこちらに辿り着いたのですが、[20180906112632]で質問のあったコントラスト調整について読みまして、

例えば地図のようなjpg画像1枚を図(名前はShape1)としてSheet1に貼り付け、

(1)Sheets("Sheet1").Shapes("Shape1").PictureFormat.Contrast = 0.3
とすると、図のプロパティのコントラストの項目は-40%表示になるが、画像がグレーがかっただけになる

(2)図の書式設定→図の修整項目にあるコントラストで-40%にすると線がクッキリと表示される

さらに(2)の状態のまま(1)のマクロを実行すると、(2)のクッキリした画像に重ねてグレーがかった状態になる

という感じになるのですが、マクロだけで(2)の状態にするには、PictureFormat.Contrastではく、別なプロパティ等があるのでしょうか?

よろしくお願い致します

< 使用 アプリ:Excel2019(365Business-32bit)、使用 OS:Windows10 Pro-64bit >


過去参照は、括弧を二重にすると、リンクになります。[[20180906112632]]

色の微妙な違いですが、明るくする側は気になりませんが、暗くする側だと、確かに結構違ってますね。 ただ、-100%にしても物の形が判るくらいな灰色ですが、VBAから0.0を指定すると完全に灰色になるので、図のプロパティ調整機能の方に、若干明るめになってしまう演算誤差があるのではないかと思います。

所詮は表計算アプリであり、画像編集専用のアプリほどの性能は無いので、諦めるしかないかなぁ?、と思いますよ。
(???) 2019/06/20(木) 16:35


返信いただきありがとうございます、リンクの仕方もありがとうございます(^-^)

私のPC環境のせいなのかとも思い、数値を変えたり、Brightnessだとかもやってみたのですが欲しい結果が得られずでした
社内の別の者が地図の貼り付け処理を行う機会が多くマクロにしたいなと思ったのですが、この際UWSCなりで自動化しようかと思います

ありがとうございます m(__)m
(Tarou) 2019/06/20(木) 16:42


もう見ていないかもしれませんが、、、、
自分でもまだ理解できていませんが、、、

自分の環境(Excel2013+Windows7)では、以下で実行できました。

With ActiveSheet.Shapes(1).Fill.PictureEffects.Insert(msoEffectBrightnessContrast)

    .EffectParameters(1).Value = 0
    .EffectParameters(2).Value = -0.4
End With

リボンのカスタマイズで「コントラスト」ボタンを追加したところ、「コントラスト」ボタンではBrightnessと同じ結果(暗くすると全体が灰色になる)になりました。
たぶん「コントラスト」ボタンと図の書式設定の「コントラスト」の処理は別ものなんだと思います。

なお、この命令はIncrementBrightnessと同様に現状に対しての追加となります。
何度も実行するとどんどん暗く(明るく)なります。
何回実行しても同じ設定にするにはリセットする必要があると思うのですが、自分はまだたどりつけていません。
とりあえず、PictureEffectsがヒントになりそうです。

(う) 2019/06/21(金) 10:53


リセット部分は以下でできました。もっといい方法があるのかも知れませんが、とりあえず。。。。

 Sub Macro1()

    Dim shp As Shape
    Dim i As Long

    Set shp = ActiveSheet.Shapes(1)

    For i = 1 To shp.Fill.PictureEffects.Count
        If shp.Fill.PictureEffects(i).Type = msoEffectBrightnessContrast Then
            shp.Fill.PictureEffects(i).Delete
        End If
    Next

    With shp.Fill.PictureEffects.Insert(msoEffectBrightnessContrast)
        .EffectParameters(1).Value = 0
        .EffectParameters(2).Value = -0.4
    End With

 End Sub

(う) 2019/06/21(金) 11:09


コメント返信:

[ 一覧(最新更新順) ]


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