[[20200813200406]] 『画像貼り付けコードの意味』(そそくら) ページの最後に飛ぶ

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

 

『画像貼り付けコードの意味』(そそくら)

Sub Sample1()
Dim strFileName As String, dirPath As String

dirPath = "c:\temp\"
strFileName = Dir(dirPath & "*.JPG")

    Do Until strFileName = ""
        ActiveSheet.Pictures.Insert(dirPath & strFileName).Select
        Selection.Name = strFileName
        strFileName = Dir()
    Loop

End Sub

引用
https://selifelog.com/blog-entry-1468.html?unapproved=1981&moderation-hash=746b8cdd6b43af2364288a3ae0231d57#comment-1981

 8行目~10行目で教えていただきたいことがあるのですがよろしいでしょうか? 
1.Inertの引数をdirPath & strFileName とすると二重でファイル名を指定しているように思うのですが、 どのような意味があるのでしょうか? 2.strfilename=Dir()でループを中断しているコードだと思うのですが、どういう原理に基づいていますか? 定よろしくお願いいたします。
3.Selection.Name = strFileName はこちらは定数を再定義しているのですよね。Selection.Nameというプロパティ?が検索しても出てこないのですが、定数をSelection.Nameという定数で定義しているのでしょうか?それはなぜなのですか。よろしくお願いいたします。

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


 こんばんは ^^
極、簡単に説明させて戴きますと、
1.パス名[ファイルが存在するフォルダ]とファイル名です。
2.挿入した画像を選択していますので、画像オブジェクトの名前を設定しています[ファイル名を指定]
さらに詳細の説明は他の回答者様のアドバイスをお待ちくださいませ。でわ。。。m(_ _)m
(隠居じーさん) 2020/08/13(木) 21:39

 Dir関数で得られるのは、ファイル名だけだから・・・。
 xxx.jpg のみ。
 別途パスを継ぎ足さないと、どこにファイルがあるのか解らない。
 変数の中身を確認しようとしないのでしょうか。

 msgbox strFileName
 とか、書き足して自分で調べる気があるかないかだけですかね。
(BJ) 2020/08/14(金) 00:00

 こんなのもあったのか。

 >Selection.Nameというプロパティ?が検索しても出てこないのですが

 こんなもん選択した物の名前と直訳。
(BJ) 2020/08/14(金) 01:21

 既に回答がありましたので、その受け止めを書いてくださいね。

 | 1.Inertの引数をdirPath & strFileName とすると二重でファイル名を指定しているように思うのですが、
 |   どのような意味があるのでしょうか? 
 | 
 | 2.strfilename=Dir()でループを中断しているコードだと思うのですが、どういう原理に基づいて
 |   いますか? よろしくお願いいたします。
 | 
 | 3.Selection.Name = strFileName はこちらは定数を再定義しているのですよね。
 |   Selection.Nameというプロパティ?が検索しても出てこないのですが、定数をSelection.Nameと
 |   いう定数で定義しているのでしょうか?それはなぜなのですか。よろしくお願いいたします。

 (1)既に回答がありました.

 (2)Dir関数を何度も実行しているのは、同じ条件にあうファイル名を次々に取得するためです。
    どういう原理というか、それがDir関数の機能だからです。
    Dir関数のヘルプをよく読んでみてください。(まあ、上記の説明以上の説明はないので、
    実際に使ってみて機能を納得するしかありませんが。)

 (3)定数は関係ありません。Nameというプロパティを変更しているのです。
    (まあ、そのプロパティをあなたはあなた流に"定数"と呼んでいるので、
      気持ちはわからないでもないが、
      VBAにおける"定数"は、別の明確な意味を持つ特別な用語なので、この場合は適当ではないです。
      定数は、いったん指定したら変更できないものです。)  

    補足ですが、
    Selectionは現在選択しているObjectを返す、Applicationオブジェクトのプロパティです。
    ・通常、多くは、セル範囲(つまりRangeオブジェクト)ですが、
    ・今回のようにPictureオブジェクトを選択していることもありますし、
    ・グラフであってもよいわけです。

    このようにSelectionは色々なObjectを指すことができるので、
    Selection.Nameとしての意味はヘルプには載っていません。
    Selection.Nameはケースバイケースですから、SelectionをそのObjectに置き換えて下さい、
    というのがMS社の気持ちでしょう。
    (Objectは多様なので、書ききれないというか、重複しているということかな。)

    (なお、TypeName(Selection)はPictureを返すので、内部PictureのVariant型なのでしょう。
      詳細に入ると歴史的経緯もあるようで混乱するので、これ以上は割愛するが、
      要は、Selectionというものの意味合いを概略掴んでもらえばそれでよいでしょう。
      まあ、このケースはNameということだから推定可能ですよね。)

(γ) 2020/08/15(土) 16:26


コメント返信:

[ 一覧(最新更新順) ]


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