質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

3回答

246閲覧

アクセスによる図入り文書データ作成フォーマット

yuujiMotoki

総合スコア90

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2018/12/12 02:16

アクセスを用いて、作業手順書を作っています。

テーブル構造としては、テキスト+画像の構成にしています。

イメージ説明

イメージのフィールドには、BITMAPを張り付けています。

最後に文書を、枠組みを作って、EXCEL(もしくはword)に吐き出さそうとしています。

VB

1Set RS = DB.OpenRecordset(SQL) 2Set objExcelApp = New Excel.Application 3objExcelApp.Visible = True 4Set objExcelWorkbook = objExcelApp.Workbooks.Open(strExcelFile) 5 6Dim bangou As clsCounter 7Set bangou = New clsCounter 8 9line = 0 10 11With objExcelWorkbook.Sheets("作業内容") 12Do 13 14If Not IsNull(RS!番号) Then 15num = ban.update(RS!番号) 16.Range(START).Offset(line, 0) = num 17End If 18 19.Range(START).Offset(line, 1) = RS!作業項目 20.Range(START).Offset(line, 2) = RS!作業図解 21.Range(START).Offset(line, 4) = RS!注意事項 22 23If Not IsNull(RS!イメージ) Then 24 25Set ole = RS!イメージ 26 27Debug.Print ole.ActualSize 28 29End If 30 31RS.MoveNext 32line = line + 1 33Loop Until RS.EOF 34 35End With 36

#課題
イメージ説明

イメージのレコードソースにアクセスして、
これをofficeのSHAPEオブジェクトに変換しようとトライしていますが、
オブジェクトの型が不明です。

どうしたら、SHAPEオブジェクトに変換できるものでしょうか?

ググっても、なかなか出て来なくて、解決に至っていません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

自己解決

今回は下記で自己解決できました。

vb

1 2With New ADODB.Stream 3.Type = 1 4.Open 5.Write DeleteNbyte(rs!イメージ, 87) 6.Position = 0 7.SaveToFile temppath, adSaveCreateOverWrite 8.Close 9End With 10 11Set img = range.Shapes.AddPicture(temppath, True, True, 100, 100, 0, 0) 12・・・ 13 14 15Function DeleteNbyte(ORG As Variant, DEL) As Variant 16Dim arr_org() As Byte, arr_ret() As Byte 17Dim ret As String 18Dim i As Long 19arr_org = CStr(ORG) 20ReDim arr_ret(UBound(arr_org) - DEL) 21For i = 0 To UBound(arr_ret) 22arr_ret(i) = arr_org(i + DEL) 23Next i 24DeleteNbyte = arr_ret 25End Function 26 27 28

投稿2019/01/09 03:11

yuujiMotoki

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

追加で調べました。

http://tokusan-sk49.cocolog-nifty.com/blog/2008/05/olebmp_access20_ec6c.html

バイナリデータのヘッダを78ずらすと、BMPが再生できたらしいです

投稿2018/12/13 03:47

yuujiMotoki

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

本件について、同じような質問がありました。

https://stackoverflow.com/questions/24173972/embed-image-stored-as-ole-object-into-excel-worksheet

BLOBデータ(おおきなバイナリデータ)は、一度ファイルにしてしまってから、読み込んだ方がいいということでした。

投稿2018/12/13 00:04

yuujiMotoki

総合スコア90

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問