dポイントプレゼントキャンペーン実施中!

どうにかネットを見ながら画像を一括で貼り付けるマクロが出来ました。
しかし、画像を2→3→1のように選んだ順に貼り付けたいのに、1→2→3の順にソートされてしまいます。
どうにか選んだ順に貼り付ける方法はありますでしょうか?

質問者からの補足コメント

  • すいません文字制限でコード全ては無理です・・・
    一応ここ
    https://oshiete.goo.ne.jp/qa/1182506.html
    を元に自分が使いやすいように手を加えました。

    No.1の回答に寄せられた補足コメントです。 補足日時:2018/02/08 09:38
  • 残念ながらソートプログラムは関係ないみたいです。

    No.2の回答に寄せられた補足コメントです。 補足日時:2018/02/08 17:37

A 回答 (3件)

こんばんは。



https://oshiete.goo.ne.jp/qa/1182506.html
の例を拝見しました。

ファイルの複数選択に、ひとつのファイル選択ダイアログで行っていますので、
マクロには選択したファイルの順番は受け取れていません。

選んだ順番に貼り付けたいのでしたが、
①ひとつだけ選択できるダイアログでファイルを選択
②それを配列に格納
上記を繰り返し行い、
①のダイアログでキャンセルボタンが押されたら、ファイルの挿入処理を行うような
感じに修正されたら、その後の処理に影響ないと思います。

Option Explicit
Sub InsertPictures()
  Dim fname() As String
  Dim selectName As Variant
  Dim i As Long
  Dim Pict As Picture
  ReDim fname(0)
  
  selectName = Application.GetOpenFilename("JPGファイル,*.jpg", MultiSelect:=False)
  'キャンセルボタン押下時
  If selectName = False Then Exit Sub
  'ファイル選択時
  fname(0) = selectName
  Do
    selectName = Application.GetOpenFilename("JPGファイル,*.jpg", MultiSelect:=False)
    'キャンセルボタン押下時、ファイル選択を終了してファイル挿入処理へ
    If selectName = False Then Exit Do
    '配列をリサイズ
    ReDim Preserve fname(UBound(fname) + 1)
    '選択されたファイル名を配列へ格納
    fname(UBound(fname)) = selectName
  Loop

これ以降は、ソートの処理を行わず、その次の処理につなげていただければできそうです。
    • good
    • 1
この回答へのお礼

ありがとう御座います。
これで作業を続けていきたいと思います。

お礼日時:2018/02/09 16:05

こんにちは。



>2→3→1のように選んだ順に貼り付けたいのに

ソートプログラムを入れているからです。

>'配列に格納されたファイル名をソート
>    BubbleSort fName, True

これを抜けばよいはずです。
この回答への補足あり
    • good
    • 0

おはようございます。



どのようなマクロになっているのか、載せていただければ、修正箇所を指摘しやすいです。
よろしくお願いします。
この回答への補足あり
    • good
    • 0

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

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


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