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

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

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

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

受付中

AccessからエクスポートしたExcelデータの関数が自動計算されない

ukana
ukana

総合スコア4

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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

1回答

0評価

0クリップ

195閲覧

投稿2022/06/29 10:00

編集2022/06/30 09:28

Microsoft access 365で
データベース構築をしています。

VBAからAccessのテーブルをExcelデータに
エクスポートするのですが
VBA上のレコードセットからテキストとして
入力した関数が出力したExcelを開いた際に
自動計算されず困っています。

自動計算されない関数について
VBAでの記載箇所は以下です。

VBA

Do Until rsa.EOF j = j + 1 If rsa!間口 <> Null Or rsa!間口 <> "" Then i = i + 1 rsa!照合1 = "1" rsa!部品2 = "2" rsa!処理1 = "=IF(E" & j & "=L" & j & ",TRUE,FALSE)" rsa!処理2 = "=IF(MID(M" & j & ",11,15)=E" & j & ",TRUE,FALSE)" rsa!処理3 = "=IF(F" & j & "=MID(M" & j & ",27,1),TRUE,FALSE)" End If rsa.MoveNext Loop

上記のような関数等の入力をレコードセットにて
テーブルに書き出した後、
Excelのテンプレート形式のデータに
出力しています。

出力自体は成功し自動計算されないものの
セルを選択しEnter等で確定すると
関数の結果が正常に表示されます。

似たような現象がないか調べてみるとExcel側の
数式の自動計算の設定が原因として挙がっていましたが
こちらは自動に設定されていました。
また解決策として挙がるCtrl + Alt + F9でも
自動計算はされませんでした。
(一度Enter等で正常に表示させた関数に関しては
ショートカットキーで更新されます)

何かしらの書式設定が原因なのか
そもそも書き出し方が悪いのか分からず困っています。

出力したデータをそのまま使えるようにするには
どのような設定もしくは書き出し方をすればいいか
教えて頂きたいです。
一度出力したExcelデータへの個別対応は避けたく
Access側のVBA等の変更もしくは
Excelのテンプレート形式データの変更であると
助かります。

情報足りていなければ申し訳ありません。
追記致します。
よろしくお願い致します。

以下6月30日追記です。
どうやらフィールドの書式が原因な気がしますが
解決策はわからない状態です。

VBA

With tdf.Fields .Append tdf.CreateField("照合1", dbText, 50) .Append tdf.CreateField("部品2", dbText, 50) .Append tdf.CreateField("処理1", dbText, 50) .Append tdf.CreateField("処理2", dbText, 50) .Append tdf.CreateField("処理3", dbText, 50) End With

dbTextで文字型になっており
書き込み先のセルの書式は標準なのですが
中身が文字型でEnterを押すことで
関数を認識しているのではないかと思います。
dbText以外の関数を認識するデータ型か
もしくはセルに対してEnterを押す作業に
該当するVBAでの処理が分かれば
解決するのではないかと考えています。
お知恵を貸して頂きたいです。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

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