日本語プログラミング言語なでしこの公式掲示板

なでしこ の 掲示板

トップ 新規 検索

2022-05-28 19:17:11

Re①:Excelのセルから数式を取得できますか?

hihiro さん

LUAを使て、「エクセル数式取得」を作ってみました。

通常の「エクセル起動」ではなく「エクセル拡張起動」で起動したエクセル上で動きます。


インデントを「タブ」から「全角スペース」と「半角スペース」でアップロードしましたが、
LUAの箇所の「半角スペース」が「全角」に変換されるので動きません。
「◎ なでしこファイル」の添付ファイルの使ってください。


#ここから

!変数宣言が必要。

セル数式とは、文字列
セル値とは、文字列
行とは、文字列
列とは、文字列

#LUAを使用するための宣言
LUA(`require("luacom")`)

もし エクセル拡張起動=0ならば #ユーザ関数(LUAを使ったエクセル起動
 終了

エクセル新規ブック #ブック作成


#データの設定「B2:E5」に設定
4回
 行は、回数
 
 4回
  列は、回数
  CELL(行+1,列+1)に(10の乱数+1)をエクセルセル設定

#「F2」に「=sum(B2:E2)」を設定
「F2」をエクセル選択
「F2」へ「=sum(B2:E2)」をエクセルセル設定

#-----------------
#「A1」の数式「=sum(B2:E2)」を取得
#-----------------
「F2」をエクセル選択
セル数式は、エクセル数式取得 #セル数式「=sum(B2:E2)」の取得
「[F2]の数式:」&セル数式を表示

#「F2:F5」にセル数式「=sum(B2:E2)」を設定
「F2:F5」へセル数式をエクセルセル設定

#「B6」に「=sum(B2:B5)」の数式を設定
「B6」へ「=sum(B2:B5)」をエクセルセル設定

#-----------------
#「B6」の数式「=sum(B2:B5)」を取得
#-----------------
「B6」をエクセル選択
セル数式は、エクセル数式取得 #セル数式「=sum(B2:B5)」の取得
「[B6]の数式:」&セル数式を表示

#「B6:E6」へセル数式「=sum(B2:B5)」を設定
「B6:F6」へセル数式をエクセルセル設定

#合計セル着色
「F2:F5」をエクセル選択
緑色をエクセル着色
「B6:F6」をエクセル選択
緑色をエクセル着色
「B2」をエクセル選択

「エクセルを確認ください。」を言う

エクセル拡張終了

終了

#選択セルの数式を取得
●エクセル数式取得
 セル数式とは、文字列
 
 LUA(`-- require("luacom")
  local xlFormula = excel.Selection.Formula
  nako_set("セル数式",xlFormula)
  `)
 
 セル数式で戻る

#選択セルの数式を取得
●エクセル値取得
 セル値とは、文字列
 
 LUA(`-- require("luacom")
  local xlValue2 = excel.Selection.Value2
  nako_set("セル値",xlValue2)
  `)
 セル値で戻る

#エクセルを拡張起動する
●エクセル拡張起動({=1}設定で)
 起動確認とは、整数
 メッセージとは、文字列
 
 起動確認は、「Microsoft Excel -*」を窓ハンドル検索
 
 もし 起動確認=0ならば
  設定で、エクセル起動
  LUA(`-- require("luacom")
    excel = luacom.GetObject("Excel.Application")
    `)
  起動確認は、1
 
 違えば
  メッセージは、「【Microsoft Excel】を停止してからプログラムを実行して下さい。」
  「【エクセル拡張】を起動できません。」でメッセージの警告ダイアログ表示
  起動確認は、0
 
 起動確認で戻る

#エクセルを拡張終了する
●エクセル拡張終了
 LUA(`-- require("luacom")
  excel = nil
  collectgarbage()
  `)
 エクセル終了

#ここまで


以前作っていた「エクセル拡張」を手直していますので、ご参考下さい。
https://w.atwiki.jp/hihiro/pages/75.html



こんにちは、仕事でバタバタしてますがいつも掲示板を拝見させて頂いております。

最近の仕事でExcelファイルを他のサーバーに移行すると言う物があったのですが、なでしこではどうにも思い付かず泣く泣くC#で実施しました。

問題は、複数のExcelファイルを移行する時に、他のブックのセルを参照しているシートがあった事です。(単純に移行した後で参照エラーが表示されて大変でした。)

2000ファイルある中から対象のファイルを確定出来ないと、全てのファイルを手作業で開いて確認しなければなりませんでした。

なでしこの「セル取得」命令だと値を取って来るのでダメでした。

なでしこで数式は取れるのでしょうか?
というのが質問になります。
(ダメっぽいと思いつつ、仕事が落ち着いたので質問しております。)

ダメならダメでオッケーです。
第三者的な意見が聴きたいのです。

皆様、宜しくお願い致します。😌


(編集パスワード送信)

子記事

親記事 (No.1320)
返信した記事(元) (No.1320)

この内容(No.1330)に返信

この内容(No.1330)の関連リンク

この内容(No.1330)をダウンロード

この内容(No.1330)のテキスト表示

◎ なでしこファイル





www.eznavi.net