• ベストアンサー

サイズと容量表示できるマクロはどうすればできますか?

サイズと容量表示できるマクロはどうすればできますか? Excel2003です。 写真を取扱うExcelの資料をいくつも作成中で、ふと気が付いたのです。 ファイルサイズが極端に大きいファイルがいくつもあることに。。。 調べてみるとどうもランダムに集めた写真のファイルサイズが 極端に大きいものもあり、バラバラなことがわかりました。 使う写真は、約4cm×5.6cm位が主なので適正なファイルサイズに 変えたいと思っています。 簡単に判断できるようにマクロを使って対象画像のサイズ/容量を表示 できるようにしたいと考えています。 識者の方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

ひょっとして、既にExcelに挿入した画像のサイズを調べようとされてますか? その場合、VBAレベルでは、一旦100%にサイズを戻してあげないといけないです。 以下、ActiveWorkbookのシートをLoopして調べ、 最後に新規シートにシート名、TopLeftCellアドレス、名前、 WidthとHeightを書き出すサンプルです。 Option Explicit Sub try()   Dim p As Picture   Dim ws As Worksheet   Dim i As Long   Dim v(1 To 10000, 1 To 5) '適当に。MAX10,000枚。   Dim ret   Application.ScreenUpdating = False   With ActiveWorkbook     For Each ws In .Worksheets       For Each p In ws.Pictures         i = i + 1         v(i, 1) = ws.Name         v(i, 2) = p.TopLeftCell.Address(0, 0)         v(i, 3) = p.Name         ret = fGetPicSize(p)         If IsArray(ret) Then           v(i, 4) = ret(0)           v(i, 5) = ret(1)         Else           v(i, 4) = "error"         End If       Next     Next     .Worksheets.Add.Cells(1).Resize(i, 5).Value = v   End With   Application.ScreenUpdating = True End Sub '----------------------------------------------------------- Function fGetPicSize(ByRef pic As Picture)   Dim x As Single   Dim y As Single   Dim T As Single   Dim L As Single   Dim W As Single   Dim H As Single   Dim LC As Long   On Error GoTo errExit   With pic.ShapeRange     T = .Top     L = .Left     W = .Width     H = .Height     LC = .LockAspectRatio     '画像位置によっては元サイズに戻しきれない場合の対策     .Top = 0     .Left = 0     .LockAspectRatio = msoFalse     .ScaleWidth 1, msoTrue, msoScaleFromTopLeft     .ScaleHeight 1, msoTrue, msoScaleFromTopLeft     'Ver2003以前のみトリミング値を考慮する     If CLng(Application.Version) < 12 Then       With .PictureFormat         x = .CropLeft + .CropRight         y = .CropTop + .CropBottom       End With     End If     x = .Width     y = .Height     .Top = T     .Left = L     .Width = W     .Height = H     .LockAspectRatio = LC   End With   fGetPicSize = Array(x, y) errExit: End Function

AstroGuy
質問者

お礼

参考式を作っていただきありがとうございました。 参考にさせていただきます。 ありがとうございました。

その他の回答 (1)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

画像の大きさを取得する http://officetanaka.net/excel/vba/tips/tips87.htm ファイルのサイズを返します。 http://officetanaka.net/excel/vba/filesystemobject/file11.htm では。

AstroGuy
質問者

お礼

ありがとうございました。 参考にさせていただきます。

関連するQ&A

  • マクロの画像サイズについてお聞きしたいのです。

    マクロの画像サイズについてお聞きしたいのです。 マクロの記録で画像を縦横比を固定するで高さを4.23cmに設定したら、 横が5.64cmになり、下のようなのマクロの値になりました。 そこで質問なのですが、画像の1辺(高さ)を4.23cm(約120pt)に定めると もう一辺が縦横比の固定で自動的に定まるマクロは作れますか? 表に入る大きさが高さが基準で、いろんなサイズでテストしてみた結果、 サイズ違いの画像ができてしまう時があります。 識者の方、よろしくお願いします。 【↓今作成中マクロの一部】 With Selection.ShapeRange .LockAspectRatio = msoTrue .Height = 120# .Width = 159.75 .Rotation = 0# Selection.Cut ActiveSheet.PasteSpecial Format:="図 (JPEG)", Link:=False, DisplayAsIcon:= _ False Range("A5").Select End With

  • マクロを有効にしたときのみ、画像が表示されるように

    エクセルで、マクロ入りファイルを開く際にマクロの有効/無効を選択しますが、その時に、「有効」を選んだときだけ、エクセルのシートに添付された写真が表示されるようにするにはどうしたらいいでしょうか?

  • Excelにマクロを使って写真を挿入したいのです。

    Excelにマクロを使って写真を挿入したいのです。 ネットサーフィンして挿入できるマクロ(下)を見つけたので 恐縮ながら使ってみたのですが・・・。 マクロを実行すると、"ファイルを開く"画面が開いて、 ファイル、フォルダの一覧表示が出てきました。 これをサムネイル表示になる画面にするには、どうすればよいのでしょうか? また、画面下の"ファイルの種類"では、"すべてのファイル(*.*)" になっていて 画像ファイル以外のファイルもたくさん表示されてしまいます。 これを画像ファイルに限り表示されるようにしたいのですが、 どうすればよいのでしょうか? 使用するExcelバージョンは、2000です。 Sub 画像取込() Dim PicFile As String PicFile = Application.GetOpenFilename() If PicFile = "False" Then Exit Sub ActiveSheet.Pictures.Insert PicFile End Sub 識者の方、よろしくお願いします。

  • 画像サイズを変更するマクロ

    Excelで、アクティブシート内の画像(msoPicture)全てを、縦横比を保持したまま一括で縮小するマクロはありますでしょうか? 元のサイズは、 高さ:12.7cm、幅:16.93cm 変更後のサイズは 高さ:6.82cm、幅:10.12cm (高さの倍率81%、幅の倍率76% です) 説明に不足がありましたら、お手数ですがご指摘頂けますと幸いです。 よろしくお願いいたします。

  • 携帯の画像表示限界サイズについて

    現在モバイルサイトに画像をUPしようと考えています。 しかし携帯端末によって表示できるサイズと容量がバラバラのため、どの位のサイズと容量に指定すればいいのかが分かりません。 色々と検索はしてみたのですが、少し前の資料しか見つかりませんでした。 こういった各携帯の画像表示に関するデータを集める方法ってあるのでしょうか?お願いします。

  • エクセルで同じ大きさの画像だけを並び替えるマクロ

    仕事でエクセルのシートに600枚ほどの写真画像を並べる作業をしなければなりません。 画像のサイズは2種類あり、  ・大きなサイズの画像(高さ5.73cm、幅7.51cm)が2枚、  ・小さなサイズの画像(高さ4.31cm、幅5.77cm)約50枚(以下n枚とします) を1つのsheetに配置します。 このとき、大きなサイズの画像はシートの右上に並べ、小さなサイズの画像は横4枚×縦(n/4)+1列に並べなければなりません。シート上での配置のイメージは下のような感じです。 ●:大きなサイズの画像 ☆:小さなサイズの画像 --:シートの範囲だと思ってください -----------------------------                  ●● ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ☆     ☆     ☆     ☆ ・ ・(途中省略) ・ ☆     ☆     ☆     ☆ ----------------------------- シート右上に配置されてある大きなサイズの画像配置を変更せずに、小さなサイズの画像のみを選択して横4枚の格子状に並べるにはどのようなマクロを組めばよいでしょうか? 過去の質問QNo.3864319を参考にしましたが、この方法では同じサイズの画像すべてを並べ替えているように設定されてあります。したがって、このマクロを実行すると、位置を変えたくない大きなサイズの画像も含めて格子状に並べ替えられてしまうため、困っています。並べ替えをしなければならない画像は3000枚くらいになると思われるので、このマクロを完成させてしまわないと作業が締め切りに間に合わないのでとっても困っています。 どうかよろしくお願いいたします。

  • EXCELに張り付けた写真のサイズを小さくしたい

    EXCELに数十枚の写真が張り付けられているのですが、サイズが大きいものを 縮小して挿入しているので、ファイルの容量が100M近くになっていました。 画像の加工ソフトを使用して、写真のサイズを小さくして挿入しなおすのも大変な 作業になりますので、何とかEXCELままで張り付けた写真のサイズを小さくする ことはできないでしょうか。

  • HDDの容量表示がおかしい?

    識者の方、お知恵をお貸しください。 HDDからデータを20GBほど削除(ゴミ箱からも削除)したのですが、HDDのプロパティから見た時の容量表示が変わりません。 おかしいと思い、隠しファイルも含めて全て表示させ、全てを選択して容量を計算したところ、サイズ156GB(ディスク上のサイズ151GB)なのにもかかわらず、HDDのプロパティから見ると使用領域が179GBとなっています。管理領域はあると思いますが、20GB以上使っているなんて事はさすがに無いですよね? これを再計算させる方法など無いものでしょうか? ちなみに OSはWindowsXP Pro HDDの容量は250GBで、フォーマット後の容量は233GBです。 よろしくお願いいたします。

  • エクセル2007マクロについて。お願いいたします。

    excelファイルの容量が10MBにもなってしまい大変困っています。すべてのシートを新しいブックにコピーしたのですがサイズは変わりませんでした・・・方法が間違っているのでしょうか??? 関数やマクロを組み込んだsheetが14枚くらいです。軽量化するにはどうしたら良いでしょう??また、肥大化しないためのマクロ等ありましたら教えていただけますでしょうか、よろしくお願いいたします。

  • GIF画像の容量

    TwitterでアイコンをGIFにして動くようにしようと思ったのですが、ファイルサイズが大きすぎるようで設定することができませんでした。 画像サイズは1067x720で、容量は1.50Mなのですが、どうにか700KB以下にできないでしょうか? 一応リサイズする方法は試してみたのですが、設定してみたところなぜか横幅が極端に狭く表示されてしまったので、画像サイズがをある程度大きいまま、容量を落としたいと思っています。 Twitterで表示されるプロフ画像は小さく表示されますしそこまで悪くない限り画質は気にしなくてもいいとはおもっているのですが、しっかりと何が写っているのか把握できるくらいの画像サイズで容量を落としたいと思っています。 何かいい方法などを知っている方がいれば、どうかご教授お願いいたします。 参考に一応画像を載せておきます。 http://livedoor.blogimg.jp/img3/imgs/d/b/dba80cc3.gif

専門家に質問してみよう