Excel VBA では、標準でImageBoxオブジェクトがありますが、これではなくVisualBasicのPictureBoxで持っている機能が使いたいのです。ExcelのUserFormにPictureBoxオブジェクトを貼り付ける方法があれば、教えて下さい。

A 回答 (1件)

VBでActiveXコントロールを作成してみたらいかがでしょうか。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q100均のセリアとダイソーって、仕事内容はほとんど同じですか? 前に少しセリアで働いていましたが、直

100均のセリアとダイソーって、仕事内容はほとんど同じですか?
前に少しセリアで働いていましたが、直営店じゃなかったからか、とてもテキトーっていうか、色あせしたり、袋が破けた物なんて、ばんばん捨ててたし、発注も陳列も破棄も自由!って仕事でした。
DAISOで働き始めて、商品管理、陳列、本部や店長への報告、とてもきちんとしていて、とても同じ100均の仕事とは思えないほどの毎日です。
セリアも直営店だと、同じように大変なものなのでしょうか?

Aベストアンサー

ダイソーがしっかりしているのは、運営元が創価学会だからでしょうね。
ちなみにダイソーは、創価学会の創立者?の池田大作の「ダイ」と創価学会の「そう」を合わせた会社名です。

このあいだテレビで高校野球の創価高校はとても礼儀が良く、挨拶やゴミ拾いが教育の一環になっている、なんてことが放送されていました。
その辺の社員教育方針がダイソーでも徹底されてるのではないかと。
まぁ、私は新興宗教には興味がないのでどうでも良いのですが、働くときには知っておいた方が良いことだと思います。
別に入信するつもりは全然ありませんが、やっぱりダイソーは良い商品が多いと感じています。
セリアはよく分かりませんが、キャンドゥーで働いてみたりして、色々比べてみられてはいかがですか?

QExcel VBA: UserForm.Show で実行時エラー

たびたびお世話になります。
結構大きなフォームを作成して、ようやく開発が終了したのですが、ある時を境に急にフォームを表示しようとすると実行時エラーになります。

 Microsoft Visual Basic
 -------------------------------------------------------------
 実行時エラー'-2147417848 (80010108)':
 'Value' メソッドは失敗しました 'IMdcOptionButton'オブジェクト

このあと、ご迷惑をおかけします、現象を Microsoft に報告しますというメッセージが出ます。
いつもメッセージは一緒です。

不思議なことに、Excel を起動し、Alt+11 で VBE を起動し、フォームを開発用に開き、再生ボタンをクリックしてフォームを表示させると、無事表示されます。
一度無事に表示されると、いつもやっているようにマクロから Show で表示しても表示されます。
これも必ず再現されます。

どうすれば回避できるでしょうか。
何かわかればよろしくお願いします。

OS は Windows XP SP2、
Office は 2007 (12.0.6331,5000) SP1 MSO (12.0.6333.5000) です。

ここまで苦労して開発してテストして、さっき顧客にできたからいまから送ると言ったのに泣きそうです :-(

たびたびお世話になります。
結構大きなフォームを作成して、ようやく開発が終了したのですが、ある時を境に急にフォームを表示しようとすると実行時エラーになります。

 Microsoft Visual Basic
 -------------------------------------------------------------
 実行時エラー'-2147417848 (80010108)':
 'Value' メソッドは失敗しました 'IMdcOptionButton'オブジェクト

このあと、ご迷惑をおかけします、現象を Microsoft に報告しますというメッセージが出ます。
いつもメッセージは一緒です...続きを読む

Aベストアンサー

こんにちは。

原因不明なエラーで悩んだときの最初のチェック項目は、「参照設定」
です。参照不可項目があるとき、無関係にみえる場所でもエラーが
発生しますので。

次に、根拠の薄い話。

まずは、確認済み事項から。

えーと、Office の VBA プロジェクトはコンパイルを重ねると序々に
ファイルのサイズが肥大化します。例えば、モジュール内のプロシー
シャを全て削除しても、逆にファイルサイズが増える場合があるという
ことです。

  # 確か、確認したのは Win98SE + Excel2002 環境だったかな

ここからは、推測(私見)。

プロシージャを減らしたのに、ファイルサイズが肥大化するということ
は、修正にともなう何らかの残骸が残る、例えば、コンパイル時に消去
されるべきものが消去されず、蓄積されていくというイメージですよね。

この現象については資料が見つからず、確かなことが私にはわかり
ませんが、VBA プロジェクトの動作に何らかの悪影響を与える可能性は
あるわけです。

したがって、私はある一定の作業量を超えたら、モジュールをエクス
ポートし、再インポートのリフレッシュ作業を行います。

  # つまり、コンパイラに問題があるのではないかと
  # ちなみに、VBA は純粋なインタプリタ言語ではありません
  # Pコードという中間言語にコンパイルされて実行されます

以上が私の私見&経験則。

  # この話は数年前の経験に基づき書いてます。現在では
  # フィックスされていてのかもしれません。

長々書きましたが、次点のアドバイスとして再インポート^^;

こんにちは。

原因不明なエラーで悩んだときの最初のチェック項目は、「参照設定」
です。参照不可項目があるとき、無関係にみえる場所でもエラーが
発生しますので。

次に、根拠の薄い話。

まずは、確認済み事項から。

えーと、Office の VBA プロジェクトはコンパイルを重ねると序々に
ファイルのサイズが肥大化します。例えば、モジュール内のプロシー
シャを全て削除しても、逆にファイルサイズが増える場合があるという
ことです。

  # 確か、確認したのは Win98SE + Excel2002 環境だ...続きを読む

Q2782 セリアの株価が急上昇している理由はなんですか?

2782 セリア
http://kabutan.jp/stock/news?code=2782

2782 セリアの株価が急上昇している理由はなんですか?

時価総額が2000億円超えていて、「え?!そんなに買われているの?」という感じです・・・。。。

他の100円ショップだと時価総額が200億円?ぐらいなのに、10倍ぐらいも差があります。

店舗数がかなりセリアは多いのですか?

それとも、売り上げがすごいのですか?

何に注目されてこんなに投資家に買われているのですか?


あと、ダイソーは検索しても出ないので、非上場ですか?

Aベストアンサー

セリアは100円ショップ2位ですね。ダイソーが1位。

日経テレコンで検索すると日経流通新聞の記事がありました。

積極出店でダイソーが強い中四国・九州など西日本地区での出店を加速させるそうです。

円高傾向なのも、商品を輸入する立場からは有利ということでしょう。

株価は堅調ですが、高PERで配当利回りも低く、株主優待もありません。

私自身は投資対象にはなりません。

成長性や業績の向上をどこまで評価するかですが、5/10が決算発表なので、
その後の会社側の2017.3の予想等に注目してください。

さらに一段高となるか、あるいは折り込み済みの範囲で反落となるかはわかりません。

QVisualBasic2010のPictureBoxにAccessの画

VisualBasic2010のPictureBoxにAccessの画像データを表示させたい。
MSAccess2007をデータベースとして利用して、VB2010を端末としてプログラミングを行っていますが、行き詰ってしまったのでお聞きします。
DBに記録された画像データ(jpgかBitmap)を抽出してVBの画面に表示させたいのです。
やり方としては、添付ファイル型で記録されたデータをPictureBoxに表示させようと考えています。
このとき、OleDbのDatasetからPictureBoxか、あるいは構造体に格納したいのですが、やり方がわかりません・・・。文字列や数値データは普通に検索・更新・削除ができるのですが、画像データの操作がわからないのです。
そもそも添付ファイル型を使用せず、OLEオブジェクト型を使用したらよいのでしょうか??
ご教授願います。

Aベストアンサー

Access2007からは添付ファイル型というのがあるのですね
一旦ファイルに落として、PictureBoxにLoadするのではダメでしょうか?
OLE型は非公開のヘッダーがついていてファイル取り出し不能?と言われていたので、
それに比べると保存できるだけ良いのではないでしょうか。
試みに、xl2000でAccess2010のデータベースを読んで、添付ファイル型からファイルを保存してみました。
(Access2010を入手しましたが、まだほとんど使っておりません。)
何かの足しになれば幸いです。

'Microsoft Office 14.0 Access database engine Object Libraryを
'ダウンロード&インストール&参照設定要
Sub test()
Dim dbWS As DAO.Workspace
Dim dbWB As DAO.Database
Dim dbRes As DAO.Recordset
Dim myFiles As DAO.Recordset

Set dbWS = DAO.DBEngine.Workspaces(0)
Set dbWB = dbWS.OpenDatabase(ThisWorkbook.Path & "\" & "Database1.accdb")
Set dbRes = dbWB.OpenRecordset("T_my1st", dbOpenDynaset)

dbRes.MoveFirst
Do Until dbRes.EOF
With dbRes.Fields("attachedFile").Value
Set myFiles = dbRes.Fields("attachedFile").Value
Do Until myFiles.EOF
myFiles.Fields("filedata").SaveToFile ThisWorkbook.Path & "\" & myFiles.Fields("filename").Value
myFiles.MoveNext
Loop
dbRes.MoveNext
End With
Loop
dbRes.Close
dbWB.Close
dbWS.Close
End Sub

参考URL:http://www.microsoft.com/downloads/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja

Access2007からは添付ファイル型というのがあるのですね
一旦ファイルに落として、PictureBoxにLoadするのではダメでしょうか?
OLE型は非公開のヘッダーがついていてファイル取り出し不能?と言われていたので、
それに比べると保存できるだけ良いのではないでしょうか。
試みに、xl2000でAccess2010のデータベースを読んで、添付ファイル型からファイルを保存してみました。
(Access2010を入手しましたが、まだほとんど使っておりません。)
何かの足しになれば幸いです。

'Microsoft Office 14.0 Access data...続きを読む

Qベビー用品トラセリアがある関西のショップ

 こんにちは。
プランタン銀座など関東では結構お店が紹介されてあったり、赤ちゃん関係の雑誌でも通販などが多少載っている人気のフランスのブランド「トラセリア」の商品を生で見て購入出来たらうれしいな~と探しています。
 関西方面(大阪市内~神戸・姫路など)でトラセリアを扱っているお店があったら知りたいです。
 ご存知の方いましたら、教えて下さい。

Aベストアンサー

こんにちは。
「トラセリア」かわいいですよね。私も大好きです。
私は関東在住なので関西のお店の事はわかりませんが、トラセリア社のHPがあります。
その中の「トラセリアサロン」という掲示板があるのですが、そこにトラセリアに関する情報が出ています。過去ログにいくつか関西の情報が出ていて、大阪市内や神戸にもあるようですよ。お店がどこにあるかも具体的な地域を書き込めば答えてもらえますよ。
もしよかったら参考になさってみてください。

参考URL:http://www.trousselier.jp/

QEXCEL VBA UserFormで困っています。

EXCEL VBA UserFormで困っています。
VBAプログラミングで以下のような現象が起こります。

開発環境  WinXP , EXCEL2003

ブックを起動するとメニューが表示され、そこからボタンを押すとuserform1が表示されるというプログラムなんですが、そのボタンを押してuserform1を起動しようとすると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。
UserForm1.Showのステップで一旦止めてステップモードで続行すると正常に動作します。

過去に似た質問を見つけ、そのアドバイスを元に以下を試してみました。
http://oshiete.goo.ne.jp/qa/2001805.html

・エラーの発生行の特定
userform1.showの前に、userform1.label.visible=falseのように、表示、非表示を切り替える命令を出しており、どうやらその表示命令の行でつまづいている事がわかりました。
表示命令を全て消去し実行したところ、現在までは問題なく起動できています。

・on timeメソッドで時間差をつける
ラベルやボタンの表示、非表示命令行をまとめて、
Application.OnTime Now + TimeValue("00:00:01"), "ラベルボタン表示設定"
userform1.show
といった形で時間差をつけてみました。
結果として、userform1自体は立ち上がるようになったのですが、時間差で実行される"ラベルボタン表示設定"の実行時に「オートメーションエラーです。起動されたオブジェクトはクライアントから切断されました。」と出てくるようになってしまいました。

ラベルはまだ良いのですが、コマンドボタンの表示、非表示は、誤操作を防ぐ手段として非常に重要です。なんとかエラーを出さずにコード通りに起動する方法はありませんでしょうか。

EXCEL VBA UserFormで困っています。
VBAプログラミングで以下のような現象が起こります。

開発環境  WinXP , EXCEL2003

ブックを起動するとメニューが表示され、そこからボタンを押すとuserform1が表示されるというプログラムなんですが、そのボタンを押してuserform1を起動しようとすると『問題が発生したため、  Microsoft Excel Windowsを終了します。・・・ エラー報告を送信する 送信しない』のメッセージが出て起動できない。
UserForm1.Showのステップで一旦止めてステップモードで続行すると正常に...続きを読む

Aベストアンサー

>最終的な結論としては、マルチページを使用しているために起こるエラーとの事でした。
この話は、Excel2000で、Excel2003も同じ構造的なものを持っていますから、共通していると思います。

私自身としては、今回のエラーの理由は、UserForm にインスタンスのオブジェクトが乗る時に、オーバーヘッドが掛かり過ぎるからと考えています。途中で割り込みを入れるから、エラーが発生してしまいます。だから、立ち上がりの時は、必要以上に、メモリに割り込みさせないようにするぐらいしか手がないのだと考えています。

他の言語のように、Control 自身を、フォーム上に生成するという方法もありますが、Excelでは、それはとても遅いのではないかと思います。

>userform1.show
>userform1.textbox300.value=○○
>にしたいのですが、現状、userform1.showすると、そこでコードがとまってしまい、

それは無理ですね。Show の後は、UserForm 側に渡されるので、UserForm のプロパティはUserForm モジュール側からでないと変更できません。

>フォームを先にshowし、その後に操作するにはどうすればよいでしょうか?
それは、その後のコードは、「Private Sub UserForm_Initialize()」 側に渡します。

ただ、もうひとつの提案の、予めプロパティを設定しておくというのはダメですか?

面倒なことは言うまでもないですが、20個程度ならなんとかなると思いますが。
そうしたら、起動時の処理は必要ありません。他にも、方法がないわけではありませんが、今の見通しでは、あまり変わらないように思っています。

それから、

>独自のバックアップシステムというものに替えて検証してみたいです。どういったコードなのか、教えて頂けませんか?

その骨子の部分だけ書くと、こういうことです。

Backup というフォルダを予め作っておきます。以下のようにします。何だとお思いになるかと思いますが、最悪の状態は、これだけで免れるのです。それに、日にちを置いたものをバックアップを取れば、なお良いわけです。

それを、Workbook_Open ()イベントに入れておきます。Copy では、出来ません。
Excelは、キャッシュの中に入って、物理的ファイルは別にありますから、外部オートメーションでないと出来ません。5~6年、ほとんど毎日のように使っていますが、ファイルを失ったことは一度もありません。ファイルサイズは、最大のひとつは、12.2MB です。生半可に小さいものではありません。

Set objFso = CreateObject("Scripting.FilesystemObject")
 objFso.Copyfile ThisWorkbook.Path & "\" & ThisWorkbook.Name, ThisWorkbook.Path & "\Backup\" & ThisWorkbook.Name
Set objFso = Nothing

>最終的な結論としては、マルチページを使用しているために起こるエラーとの事でした。
この話は、Excel2000で、Excel2003も同じ構造的なものを持っていますから、共通していると思います。

私自身としては、今回のエラーの理由は、UserForm にインスタンスのオブジェクトが乗る時に、オーバーヘッドが掛かり過ぎるからと考えています。途中で割り込みを入れるから、エラーが発生してしまいます。だから、立ち上がりの時は、必要以上に、メモリに割り込みさせないようにするぐらいしか手がないのだと考えています...続きを読む

Q100円ショップのセリアについて

皆さんこんにちは。
少し気になっていることがあるので
ここで質問させていただきます。

100円ショップのセリアについてなのですが、
よく検索すると「女性向け」とあります。
たしかに調べてみると、
「利用客の9割が女性」など
とにかく「女性に人気」というイメージを
前面に押し出しているように感じます。
男性にとって入りづらいような環境を
作ってるのではないかと思います。

ぶっちゃけ、ボクの家の近くに
セリアはあるのですが、
そういった話を聞いてしまうと
入るのに少しためらってしまい、
結局入ることはありませんでした。

男の人がセリアを利用するのは変なのでしょうか?
ホントに「9割女性客」という状況?
たしかに女性の方が多いとは思いますが、
そんなに傾いてはいないような気がします。
近いうち100円ショップの商品を使って
インテリアDIYに挑戦したいので、
その方面では比較的人気なセリアを利用したいんです。
どなたか回答をよろしくお願いします。

Aベストアンサー

女性向けってのを今知った位だから、むしろ知ってて利用している人は、ほとんどいないんじゃない。

100円ショップは100円ショップなんだから、ぜ~んぜん気にしないで大丈夫です。

場所や規模にもよるけど、スーパーに近いこじんまりしたダイソーは女性向けの物が多いよ。

100円ショップくらいでそんなに悩んでるなんて、驚きです。
女性トイレに入りたいって言うのだったら、ちょっと難しいけど。

要するに、全く気にしないで良いです。女性限定ではありません。
一人でもお客様は来て欲しいはずです。

QEXCEL VBA COLLECTIONオブジェクトについて教えてください。

教えてください。

EXCELで3万件の商談情報があり、その情報に顧客情報をセットするようにマクロを作成しています。

顧客情報にある顧客コードをキーにしてCollectionオブジェクトを作成し、商談情報にある顧客コードを元にセットしているのですが、この顧客コードが英数の大文字と小文字が混在しています。

例えば、60000AABBと60000AaBbは違う顧客コードということになり、Collectionオブジェクトのキーに指定するとエラーとなります。
Collectionオブジェクトのキーを大文字・小文字を区別する方法はありますか?

もし、区別する方法がなければ、Collectionオブジェクト以外に何か良い方法はありますか?

Aベストアンサー

n-junです。

ご参考程度として新規Bookで試してみて下さい。

Sub try_next()
Dim myDic As Object
Dim s1 As String, s2 As String
Dim s1t As String, s2t As String
Dim s1n As String, s2n As String
Dim r As Range

Set myDic = CreateObject("Scripting.Dictionary")

s1 = "60000AABB": s1t = "鹿児島店": s1n = "001-0789-0123"
s2 = "60000AaBb": s2t = "神奈川店": s2n = "001-0123-4567"

'顧客コードをキーに、顧客名と電話番号を項目として
myDic.Add s1, Array(s1t, s1n)
myDic.Add s2, Array(s2t, s2n)

'A1~A2に顧客コードを代入
Range("A1").Resize(2).Value = Application.Transpose(Array(s1, s2))

'A列の顧客コーtどに対して、B・C列に顧客名と電話番号を代入
For Each r In Range("A1:A2")

r.Offset(, 1).Resize(, 2).Value = myDic.Item(r.Value)

Next

Set myDic = Nothing

End Sub

例えばこんな感じでしょうか?

n-junです。

ご参考程度として新規Bookで試してみて下さい。

Sub try_next()
Dim myDic As Object
Dim s1 As String, s2 As String
Dim s1t As String, s2t As String
Dim s1n As String, s2n As String
Dim r As Range

Set myDic = CreateObject("Scripting.Dictionary")

s1 = "60000AABB": s1t = "鹿児島店": s1n = "001-0789-0123"
s2 = "60000AaBb": s2t = "神奈川店": s2n = "001-0123-4567"

'顧客コードをキーに、顧客名と電話番号を項目として
myDic.Add s1, Array(s1t, s1n)
m...続きを読む

Qセリアにペンキ用の筆はありますか?つい最近、お部屋の模様替えをしました。私は中1で小学校か

セリアにペンキ用の筆はありますか?



つい最近、お部屋の模様替えをしました。
私は中1で小学校から使っている机があります。その事についてなのですが、机の色を変えたいなと思いました。現在はピンク色でセリアのペンキ(スモーキーブルー)で塗り替えたいと思います。
塗る際にペンキ用の筆がいると思いますが、どのくらいのサイズがよろしいのでしょうか?細かい部分もあるし、ベタっと塗れそうな部分もあります。
セリアのペンキ用の筆は3本セットとかあるのでしょうか?
後、ペンキはどのくらいの量が入っているのでしょうか?

もう一つあるのですが、ペンキを塗る際に注意した方がいい事や、塗り方などを教えて下さると幸いです。

ご回答宜しくお願いします。

Aベストアンサー

刷毛もあるし、筆もあるし、ローラーもありますよ

広い範囲を塗装するんだったら、ローラーのほうがいいですよ

まず、紙やすりを買ってきて、それを適当な大きさの木片に当てて全体をこすってザラザラにしてください
削ったカスを吹き飛ばしたり、濡れぞうきんで拭いて乾燥したら、塗料を塗ります
細かな部分は刷毛で、広い範囲はローラーで塗りましょう

商品の在庫は店によって違うので、3本セットがありますよ、と言ってもあなたの近くのお店では売っていないかもしれないので、ダイソーや他の店でも探してみてください

元の机の素材や色は何ですか?
それによって揃える道具は違ってきますから

QVBAでカタカナ→ローマ字の変換を標準モジュールでどのように貼り付けしたらいいか教えてください

VBA初心者です。
佐藤陽子さんだったら、SATO YOKOとExcelで表示させたいのですが、こちらに書いてある質問と一緒だったので、標準モジュールでプログラムをコピペしましたが、上手くいきませんでした。
https://oshiete.goo.ne.jp/qa/1450971.html
恐らく、貼り付けの仕方が悪いと思うのですが、今回初めてVBAを使うため、色々調べてみてもどのようにこちらのプログラムを貼り付けしたら良いかさっぱりわかりません…。
昨日仕事で来週金曜日までに1000人ほど変換してほしいと言われ、困っています。
変換できる無料ソフトウェアもあるようですが、会社のPCのため、勝手にインストール出来ません。
知識不足で申し訳ありませんが、分かりやすくご回答いただけますと幸いです。どうぞよろしくお願い致します。

Aベストアンサー

下記URLにソースを置きました。それを、コピーして貼り付けても構いません。
http://climbi.com/b/8497/0

但し、最初の行の
Option Explicit
が2行になった場合、片方を削除してください。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング