[
新規
] - [
ツリー
] - [
スレッド
] [
未解決
] [
緊急
] - [
優先
] - [
検索
] - [
なでしこ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)を添付可能