Microsoft access 365で
データベース構築をしています。
VBAからAccessのテーブルをExcelデータに
エクスポートするのですが
VBA上のレコードセットからテキストとして
入力した関数が出力したExcelを開いた際に
自動計算されず困っています。
自動計算されない関数について
VBAでの記載箇所は以下です。
VBA
1Do Until rsa.EOF 2 j = j + 1 3 If rsa!間口 <> Null Or rsa!間口 <> "" Then 4 i = i + 1 5 rsa!照合1 = "1" 6 rsa!部品2 = "2" 7 rsa!処理1 = "=IF(E" & j & "=L" & j & ",TRUE,FALSE)" 8 rsa!処理2 = "=IF(MID(M" & j & ",11,15)=E" & j & ",TRUE,FALSE)" 9 rsa!処理3 = "=IF(F" & j & "=MID(M" & j & ",27,1),TRUE,FALSE)" 10 End If 11 rsa.MoveNext 12 Loop
上記のような関数等の入力をレコードセットにて
テーブルに書き出した後、
Excelのテンプレート形式のデータに
出力しています。
出力自体は成功し自動計算されないものの
セルを選択しEnter等で確定すると
関数の結果が正常に表示されます。
似たような現象がないか調べてみるとExcel側の
数式の自動計算の設定が原因として挙がっていましたが
こちらは自動に設定されていました。
また解決策として挙がるCtrl + Alt + F9でも
自動計算はされませんでした。
(一度Enter等で正常に表示させた関数に関しては
ショートカットキーで更新されます)
何かしらの書式設定が原因なのか
そもそも書き出し方が悪いのか分からず困っています。
出力したデータをそのまま使えるようにするには
どのような設定もしくは書き出し方をすればいいか
教えて頂きたいです。
一度出力したExcelデータへの個別対応は避けたく
Access側のVBA等の変更もしくは
Excelのテンプレート形式データの変更であると
助かります。
情報足りていなければ申し訳ありません。
追記致します。
よろしくお願い致します。
以下6月30日追記です。
どうやらフィールドの書式が原因な気がしますが
解決策はわからない状態です。
VBA
1With tdf.Fields 2 .Append tdf.CreateField("照合1", dbText, 50) 3 .Append tdf.CreateField("部品2", dbText, 50) 4 .Append tdf.CreateField("処理1", dbText, 50) 5 .Append tdf.CreateField("処理2", dbText, 50) 6 .Append tdf.CreateField("処理3", dbText, 50) 7 End With
dbTextで文字型になっており
書き込み先のセルの書式は標準なのですが
中身が文字型でEnterを押すことで
関数を認識しているのではないかと思います。
dbText以外の関数を認識するデータ型か
もしくはセルに対してEnterを押す作業に
該当するVBAでの処理が分かれば
解決するのではないかと考えています。
お知恵を貸して頂きたいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/29 12:15 編集
2022/06/29 12:34
2022/06/30 00:28