新規
・
ツリー
スレッド
未解決
緊急
・
優先
・
検索
・
なでしこTOP
「なでしこv1」開発掲示板
なでしこv1のバグや要望を書き込む掲示板
✏️ 書き込み(
#1954
)を編集する
名前
タイトル
本文
Excelに最下行取得が有るが、最右列取得は無いっぽい。あれば便利なのではないかと。 下記に記載のような感じに修正(追加)することでわりと他の動作に影響せずに追加できそうです。もっとも、ソースが修正されても、リリースが無いと意味は無いんですが・・・ あとは、ふと、あちこちに最大列番号/最大行番号を直接埋め込んで書かれているので、最近の環境でははうまく動かなかったりとかが気になっています。 (このソースで言うと、'IV'というのがマジックナンバーで256列目の意味。Excel2007では16384列ありますから、おそらくは正しく動作しません。当方は2003のため、うまく行かないのかどうかは未確認。) ■dll_office_function.pasの適切な箇所に以下を追加 function excel_getLastCol(h: DWORD): PHiValue; stdcall; var row: string; v: PHiValue; begin v := nako_getFuncArg(h, 0); if v = nil then begin row := '1'; end else begin row := hi_str(v); end; Result := hi_newInt(excel.getLastCol(row)); end; AddFunc ('エクセル最右列取得','{=1}ROWの|ROWで', ???, excel_getLastCol,'Excelの行番号ROW(123..で指定)の最右列を調べて返す。','えくせるさいうれつしゅとく'); ■unit_office.psaの適切な箇所に以下を追加 function getLastCol(col:string):Integer; xlToLeft = -4159; function TKExcel.getLastCol(row: string): Integer; var v1, v2:Variant; begin E_WorkSheet := E_Application.ActiveSheet; v1 := E_WorkSheet.Range['IV' + row]; v2 := v1.End[xlToLeft]; Result := v2.column; v1 := Unassigned; v2 := Unassigned; end; # AddFuncの番号はどう管理・採番しているのか不明・・・
優先度
低
中
高
緊急
状態
未処理
詳細求む!
調査中
議論中
修正中
確認待ち
再修正依頼
解決
---
重複
---
アイデア
感想
告知
感謝
編集キー
編集時に使うキーを入力(省略可能)
添付ファイル
画像ファイル(最大300KB)を添付可能
Website