Excel VBA質問箱 IV

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

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


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

【44463】スキャナー画像を保存したい よね 06/11/17(金) 12:20 質問[未読]
【44466】Re:スキャナー画像を保存したい Jaka 06/11/17(金) 14:13 発言[未読]
【44467】Re:スキャナー画像を保存したい よね 06/11/17(金) 14:58 質問[未読]
【44470】Re:スキャナー画像を保存したい Kein 06/11/17(金) 15:08 発言[未読]
【44473】Re:スキャナー画像を保存したい よね 06/11/17(金) 15:26 発言[未読]
【44468】Re:スキャナー画像を保存したい Kein 06/11/17(金) 14:59 回答[未読]
【44469】Re:スキャナー画像を保存したい Kein 06/11/17(金) 15:02 発言[未読]
【44474】Re:スキャナー画像を保存したい よね 06/11/17(金) 15:30 お礼[未読]
【44471】Re:スキャナー画像を保存したい りん 06/11/17(金) 15:18 回答[未読]
【44475】Re:スキャナー画像を保存したい よね 06/11/17(金) 15:33 お礼[未読]

【44463】スキャナー画像を保存したい
質問  よね  - 06/11/17(金) 12:20 -

引用なし
パスワード
   失礼致します。

スキャナーから画像を取り込んでシートに貼り付けた画像を保存したいのですが、可能でしょうか。

なんとかExcelからスキャナーを動かすのは分かったのですが・・・

  Sheets("sheet1").Select
 Application.CommandBars("Worksheet Menu Bar"). _
  Controls("挿入(&I)").Controls("図(&P)"). _
  Controls("スキャナまたはカメラから(&S)...").Execute


この貼り付けた画像を保存する方法が分かりません・・・


よろしくお願い致します。

【44466】Re:スキャナー画像を保存したい
発言  Jaka  - 06/11/17(金) 14:13 -

引用なし
パスワード
   他の方法はわかりません。
また、余白を完全に取り去るにはAPIを使うらしいです。
どこかのサイトで見かけたけど、どこだったかは覚えてません。
こんなことをしなくても、2002以上だとファイルで保存できるらしいけど、
やり方がわかりませんでした。

Sub 画像の保存()
  Dim Cht As Chart
  Dim Rgw As Single, Rgh As Single
  Dim MRng As Range, 挿入 As Object
  
  '図形インサート
  Set 挿入 = ActiveSheet.Pictures.Insert( _
       "C:\Documents and Settings\Jaka\My Documents\My Pictures\サンプル.jpg")
  名 = 挿入.Name
  
  With Sheets("Sheet1").Shapes(名)
    'ここで少しでも余白を消そうとしているんですが、
    'うまく余白が取れません
    Rgh = Sheets("Sheet1").Shapes(名).Height + 7
    Rgw = Sheets("Sheet1").Shapes(名).Width + 7
    .CopyPicture Format:=xlBitmap
  End With
  With ActiveSheet.ChartObjects.Add(0, 0, Rgw, Rgh).Chart
    .Paste
    .ChartArea.Border.LineStyle = 0
    .Export ThisWorkbook.Path & "\保存ファイル.jpg"
    .Parent.Delete
  End With
End Sub

【44467】Re:スキャナー画像を保存したい
質問  よね  - 06/11/17(金) 14:58 -

引用なし
パスワード
   Jakaさんへ
ありがとうございます!
何を書いてあるか理解するのに時間がかかってしまい、返事が遅れてしまいました^^;すいません。


試してみたところ、動きました!
ただ、保存したデータをもう一度Excelに貼り付けて印刷したところ、
質が荒くなってしまったので、

>  With Sheets("Sheet1").Shapes(名)
>    Rgh = Sheets("Sheet1").Shapes(名).Height + 7
>    Rgw = Sheets("Sheet1").Shapes(名).Width + 7
>    .CopyPicture Format:=xlBitmap
>  End With





  With Sheets("Sheet1").Shapes(名)
    Rgh = Sheets("Sheet1").Shapes(名).Height
    Rgw = Sheets("Sheet1").Shapes(名).Width
    .CopyPicture appearance:=xlScreen, Format:=xlPicture
   End With

に変えてみました。


他に画像の質を上げる方法ってありますか?


また、こちらは余白について問題がありませんでした。

【44468】Re:スキャナー画像を保存したい
回答  Kein  - 06/11/17(金) 14:59 -

引用なし
パスワード
   エクセル・ブックを通常、保存しているフォルダーに "MyPic" と連番を組み合わせた
ファイル名の Gifファイル を作成・保存するコードとして・・

Sub Mk_MyPic()
  Dim MyF As String, NewF As String
  Dim i As Long
 
  With Worksheets("Sheet1").Pictures
   If .Count = 0 Then Exit Sub
   .Item(.Count).Select
  End With
  With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
   MyF = Dir(.DefaultFilePath & "\MyPic*.gif")
   If MyF = "" Then
     NewF = .DefaultFilePath & "\MyPic1.gif"
   Else
     i = 1
     Do Until MyF = ""
      i = i + 1: MyF = Dir()
     Loop
     NewF = .DefaultFilePath & "\MyPic" & i & ".gif"
   End If
  End With
  Selection.Copy
  With Charts.Add
   .Paste
   .Export NewF, "GIF"
   .Delete
  End With
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
  MsgBox Dir(NewF) & " を作成・保存しました", 64
End Sub

【44469】Re:スキャナー画像を保存したい
発言  Kein  - 06/11/17(金) 15:02 -

引用なし
パスワード
   補足します。

  With Application
   .CutCopyMode = False '←これを追加して下さい。
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
  MsgBox Dir(NewF) & " を作成・保存しました", 64
End Sub

【44470】Re:スキャナー画像を保存したい
発言  Kein  - 06/11/17(金) 15:08 -

引用なし
パスワード
   >保存したデータをもう一度Excelに貼り付けて印刷
順序が逆ですね。シートに挿入した時点で印刷し、そのあと別のファイルに出力する、
ということが充分可能なはずですから。

【44471】Re:スキャナー画像を保存したい
回答  りん  - 06/11/17(金) 15:18 -

引用なし
パスワード
   よね さん、こんにちわ。

乱暴なやり方ですが。

Sub Macro1()
  Dim wb As Workbook
  '図を取り込んだシートを新しいブックにコピー
  ActiveSheet.Copy
  Set wb = ActiveWorkbook
  'html形式でそのブックを保存し閉じる
  With wb
   .SaveAs "TEST.htm", FileFormat:=xlHtml
   .Saved = True
   .Close
  End With
End Sub

TEST.htmのある保存先フォルダの中に、TEST.filesというフォルダが出来、その中にシート上の図が入ります。
図が複数ある場合はそれぞれ名前がつきます。
図が拡大縮小等されている場合は、もとの大きさのものと、調整されたものがそれぞれ出来るようです。

【44473】Re:スキャナー画像を保存したい
発言  よね  - 06/11/17(金) 15:26 -

引用なし
パスワード
   ▼Kein さん:
>>保存したデータをもう一度Excelに貼り付けて印刷
>順序が逆ですね。シートに挿入した時点で印刷し、そのあと別のファイルに出力する、
>ということが充分可能なはずですから。


あ、すいません。言葉足らずでした。


実は行っている作業というのが


画像をスキャナーで取り込む

印刷する。

前の画像を消し、別の画像をスキャナーする。

印刷する。

前の画像を消し、別の画像を・・・


ですので、過去にスキャンした画像をもう一度印刷しようとしたときに、
再度スキャンする必要が有るのです。

・・・今のところ、保存した画像データの解像度が変更できないか、四苦八苦しております・・・

【44474】Re:スキャナー画像を保存したい
お礼  よね  - 06/11/17(金) 15:30 -

引用なし
パスワード
   ▼Kein さん:

連番で保存できるなんてすごいですね!
大変参考になりました!ありがとうございます!
ただ・・まだ自分のレベルがおいついていないので何を書いてあるか分かりません・・・
(do - Loopで何かしてるんだろう・・・ぐらいです・・・)
時間をかけて調べたいと思います。
ありがとうございました!

【44475】Re:スキャナー画像を保存したい
お礼  よね  - 06/11/17(金) 15:33 -

引用なし
パスワード
   ▼りん さん:

こ・・・こんな方法があっただなんて・・・気がつきませんでした
ありがとうございます!


>よね さん、こんにちわ。
>
>乱暴なやり方ですが。
>
>Sub Macro1()
>  Dim wb As Workbook
>  '図を取り込んだシートを新しいブックにコピー
>  ActiveSheet.Copy
>  Set wb = ActiveWorkbook
>  'html形式でそのブックを保存し閉じる
>  With wb
>   .SaveAs "TEST.htm", FileFormat:=xlHtml
>   .Saved = True
>   .Close
>  End With
>End Sub
>
>TEST.htmのある保存先フォルダの中に、TEST.filesというフォルダが出来、その中にシート上の図が入ります。
>図が複数ある場合はそれぞれ名前がつきます。
>図が拡大縮小等されている場合は、もとの大きさのものと、調整されたものがそれぞれ出来るようです。

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