Excel VBA質問箱 IV

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

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


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

【60588】imageの変数について しん 09/3/3(火) 23:55 質問[未読]
【60589】Re:imageの変数について ichinose 09/3/4(水) 6:49 発言[未読]
【60590】Re:imageの変数について しん 09/3/4(水) 8:42 お礼[未読]
【60593】Re:imageの変数について つん 09/3/4(水) 10:28 発言[未読]
【60673】Re:imageの変数について しん 09/3/7(土) 12:00 お礼[未読]
【60675】Re:imageの変数について しん 09/3/7(土) 13:47 お礼[未読]

【60588】imageの変数について
質問  しん  - 09/3/3(火) 23:55 -

引用なし
パスワード
   ヨロシクお願いします。

文書で説明するのが難しいので、大雑把に言わせてください。
コントロールツールボックスから"イメージ"をシートに複数枚枚貼り付けたところをイメージして下さい。

1枚目は、"image1"になっていると思うのですが、この"1"の部分は変数で使用できますか??
出来れば、簡単にどのように使うのか教えて下さい。

変な質問で分かりにくかもしれませんがヨロシクお願いします

【60589】Re:imageの変数について
発言  ichinose  - 09/3/4(水) 6:49 -

引用なし
パスワード
   ▼しん さん:
おはようございます。

>
>文書で説明するのが難しいので、大雑把に言わせてください。
>コントロールツールボックスから"イメージ"をシートに複数枚枚貼り付けたところをイメージして下さい。
>
>1枚目は、"image1"になっていると思うのですが、この"1"の部分は変数で使用できますか??

シートに貼り付けたActivexControlは、Oleobjectのコレクションから取得できます。
これを利用すると・・・、

Sub sample1()
  Const imgcnt = 3
  Dim ole As OLEObject
  Dim g0 As Long
  With ActiveSheet
    For g0 = 1 To imgcnt
     MsgBox .OLEObjects("image" & g0).Name
     MsgBox .OLEObjects("image" & g0).Object.BackColor
    Next
  End With
End Sub

こんなコードが書けます。上記のコードはImageコントロールが

アクティブシートにImage1、Image2、Image3とあった場合の例です。

Image1のプロパティやメソッドは、Objectプロパティにて、Imageコントロールを
取得してからのインターフェースになりますから、注意してください。
(ユーザーフォーム上のImageコントロールと若干使用方法が違います)

詳細は、OleobjectとActivexControlのHelpを参照してみてください。


>
>変な質問で分かりにくかもしれませんがヨロシクお願いします

【60590】Re:imageの変数について
お礼  しん  - 09/3/4(水) 8:42 -

引用なし
パスワード
   ichinose さん、ありがとうございます。

アクティブシートに複数枚の"image"を貼り付けておいて、変数を使い、PC内に保存してある写真を、そのimageに貼り付けたいのです。

tukino…変数
shasin…保存してある写真を変数に取り込んでいるもの

Image&"tukino".Picture = LoadPicture(shasin)


もともとはimage1となっている状態で、写真は取り込めたので…。
安易な考えで、上記のような形で出来るかな?と思いやってみたのですが、出来ませんでした。

ご迷惑をおかけしますが、ご教授ください。

【60593】Re:imageの変数について
発言  つん  - 09/3/4(水) 10:28 -

引用なし
パスワード
   ▼しん さん、ichinoseさん、こんにちは^^
横から失礼します。
このスレッドでちと勉強させてもらってました。

ichinoseさんのコードのアレンジで、出来ましたよ(^o^)

.OLEObjects("image" & g0).Object.BackColor

このへのを参考に
.OLEObjects("image" & g0).Object.Picture = LoadPicture(shasin)

って感じですよね。
このままでは、同じ写真が貼り付けられちゃうので、
写真のファイル名とかループで回せるよう工夫がいりますよね。

【60673】Re:imageの変数について
お礼  しん  - 09/3/7(土) 12:00 -

引用なし
パスワード
   つん さん
ありがとうございます。
インターネット環境になかったもので、御礼が遅くなりました。

”出来ました”と言いたかったですが…。
私には難しいです。

何回やっても、わかる範囲でコードを変更しても…。
デバッグが出てしまいます。
(WorksheetクラスのOLEObjecsプロパティを取得できません。)
???
ichinose さんの言われる
「Objectプロパティにて、Imageコントロールを
取得してからのインターフェースになりますから、注意してください。」
が原因かもしれません??
どうしたらいいんですか??

ヨロシクお願いします。


>.OLEObjects("image" & g0).Object.BackColor
>
>このへのを参考に
>.OLEObjects("image" & g0).Object.Picture = LoadPicture(shasin)
>
>って感じですよね。
>このままでは、同じ写真が貼り付けられちゃうので、
>写真のファイル名とかループで回せるよう工夫がいりますよね。

【60675】Re:imageの変数について
お礼  しん  - 09/3/7(土) 13:47 -

引用なし
パスワード
   ichinose さん&つん さん&みなさん。
色々ありがとうございました。

色々やっていくうちに出来るようになりました!!
ありがとうございました。

大変いい勉強になりました。

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