粗茶でございます日本語 プログラミング 言語 「なでしこ」 大好き 

この記事に含まれるtag :
なでしこ2.0  プラグイン  Excel  

スポンサーサイト

   ↑  --/--/-- (--)  カテゴリー: スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

(記事編集) http://nadesocha.blog.fc2.com/?overture" target="_new

--/--/-- | Comment (-) | ホーム | ↑ ページ先頭へ ↑ |

エクセルプラグインの作成

   ↑  2012/04/29 (日)  カテゴリー: なでしこ全般
 現在、なでしこ2.0向けのエクセルプラグインを作成中なのですが、これがなかなか手強くて、また私の勉強不足もあって、うまい解決がみつかりません。

 現在のところ、実装しているのは次の命令です。

' アプリケーション
・エクセルインストールチェック Excelがインストールされているか調べる。(1:インストールされている、0:インストールされていない)
・エクセル起動 FLAGで|FLAGに|FLAGへ Excelを起動する。(FLAG=1:可視、FLAG=0:不可視で起動)
・エクセル終了 Excelを終了する。ブックは保存しない。
・エクセル起動取得 Excelが起動しているか調べる。(1:起動している、0:起動していない)
・エクセルバージョン取得 Excelのバージョンを取得する。
・エクセル可視設定 FLAGで|FLAGに|FLAGへ Excelの可視を設定する。(FLAG=1:可視、FLAG=0:不可視)
・エクセル可視取得 Excelの可視を取得する。(1:可視、0:不可視で起動)
・エクセル警告設定 FLAGで|FLAGに|FLAGへ Excelの警告表示を設定する。(FLAG=1:警告あり、FLAG=0:警告なし)
・エクセル警告取得 Excelの警告表示を取得する。(1:警告あり、0:警告なし)
・エクセル窓設定 STATEで|STATEに|STATEへ Excelのウィンドウ状態を設定する。(STATE=『最大化|最小化|標準』)
・エクセル窓取得 Excelのウィンドウ状態を取得する。(『最大化|最小化|標準』)
・エクセルタイトル設定 TITLEで|TITLEに|TITLEへ ExcelのウィンドウタイトルをTITLEに設定する。
・エクセルタイトル取得 Excelのウィンドウタイトルを取得する。
・エクセルステータスバー設定 STRINGで|STRINGに|STRINGへ ExcelのステータスバーをSTRINGに設定する。STRING=「」の時、ステータスバーを標準にする。
・エクセルステータスバー取得 Excelのステータスバーを取得する。
・エクセルステータスバー可視設定 FLAGで|FLAGに|FLAGへ Excelのステータスバーの可視を設定する。(FLAG=1:可視、FLAG=0:不可視)
・エクセルステータスバー可視取得 Excelのステータスバーの可視を取得する。
・エクセル画面更新設定 FLAGで|FLAGに|FLAGへ Excelの画面更新を設定する。(FLAG=1:画面更新あり、FLAG=0:画面更新なし)
・エクセル画面更新取得 Excelの画面更新を取得する。(1:画面更新あり、0:画面更新なし)
' ブック
・エクセルブック追加 Excelに新規ブックを追加する。
・エクセルブック開く FILEを|FILEの|FILEで|FILEから Excelにファイル名を指定してブックを開く。
・エクセルブック保存 FILEを|FILEの|FILEで|FILEへ|FILEに ファイル名を指定して現在のブックを保存する。FILEを省略すると現在のブックを上書き保存する。
・エクセルブックマクロ可能取得 アクティブブックでなでしこからマクロ(VBA)が利用できるか調べる。(1:利用可能、0:利用不可)
・エクセルブック閉じる アクティブブックを保存しないで閉じる。
・エクセルブック保存後閉じる アクティブブックを上書き保存して閉じる。
・エクセルブック変更保存設定 FLAGへ|FLAGに|FLAGで アクティブブックを変更後保存したか設定する。(FLAG=1:変更していないか変更して保存した、FLAG=0:変更したが保存していない)
・エクセルブック変更保存取得 アクティブブックを変更後保存したか取得する。(1:変更していないか変更して保存した、0:変更したが保存していない)
・エクセルブック列挙 開いているブック名を列挙する。
・エクセルブックアクティブ設定 BOOKを|BOOKの|BOOKへ|BOOKで ブックをアクティブにする。(BOOK:ブック名)
・エクセルブックアクティブ取得 アクティブなブック名を取得する。
' シート
・エクセルシート枠線可視設定 FLAGで|FLAGに|FLAGへ Excelのシートの枠線の可視を設定する。(FLAG=1:可視、FLAG=0:不可視)
・エクセルシート枠線可視取得 Excelのシートの枠線の可視を取得する。(1:可視、0:不可視)
' セル
・エクセルセルA1形式変換 CELLSの|CELLSを|CELLSで|CELLSから 「row,col」をA1形式のセル番地に変換する。(row:行番号、col:列番号)
・エクセルセル行番号取得 RANGEの|RANGEを|RANGEで|RANGEから セル番地「RANGE」の行番号を取得する。(RANGE:A1形式のセル番地)
・エクセルセル列番号取得 RANGEの|RANGEを|RANGEで|RANGEから セル番地「RANGE」の列番号を取得する。(RANGE:A1形式のセル番地)
・エクセルセル値取得 RANGEの|RANGEを|RANGEで|RANGEから セル番地「RANGE」の値を取得する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセル値設定 RANGEへ|RANGEにVALUEを|VALUEで セル番地「RANGE」にVALUEを設定する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセル式取得 RANGEの|RANGEを|RANGEで|RANGEから セル番地「RANGE」の式を取得する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセル式設定 RANGEへ|RANGEにEXPを|EXPで セル番地「RANGE」に式「EXP」を設定する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセル文字取得 RANGEの|RANGEを|RANGEで|RANGEから セル番地「RANGE」の値を文字列として取得する。値を表示形式のまま取得する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセル文字設定 RANGEへ|RANGEにTEXTを|TEXTで セル番地「RANGE」に文字列「TEXT」を設定する。文字列の前に「'」が付く。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセルシリアル値取得 RANGEの|RANGEを|RANGEで|RANGEから セル番地「RANGE」のシリアル値を取得する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセルシリアル値設定 RANGEへ|RANGEにVALUEを|VALUEで セル番地「RANGE」にシリアル値「VALUE」を設定する。範囲指定しても左上のセルのみが対象。(RANGE:A1形式のセル番地)
・エクセルセル値範囲取得 RANGE_LTから|RANGE_LTよりRANGE_RBまで|RANGE_RBへ|RANGE_RBを|RANGE_RBの|RANGE_RBで セル番地「RANGE_LT:RANGE_RB」の値を範囲取得する。(RANGE_LT:A1形式の左上セル番地、RANGE_RB:A1形式の右下セル番地)
・エクセルセル値範囲設定 RANGEへ|RANGEにVALUEを|VALUEで セル番地「RANGE」にVALUEを範囲設定する。(RANGE:A1形式のセル番地、VALUE:配列)
・エクセルセル式範囲取得 RANGE_LTから|RANGE_LTよりRANGE_RBまで|RANGE_RBへ|RANGE_RBを|RANGE_RBの|RANGE_RBで セル番地「RANGE_LT:RANGE_RB」の式を取得する。(RANGE_LT:A1形式の左上セル番地、RANGE_RB:A1形式の右下セル番地)
・エクセルセル式範囲設定 RANGEへ|RANGEにEXPを|EXPで セル番地「RANGE」に式「EXP」を設定する。(RANGE:A1形式のセル番地、EXP:配列)
・エクセルセル文字範囲取得 RANGE_LTから|RANGE_LTよりRANGE_RBまで|RANGE_RBへ|RANGE_RBを|RANGE_RBの|RANGE_RBで セル番地「RANGE_LT:RANGE_RB」の式を取得する。(RANGE_LT:A1形式の左上セル番地、RANGE_RB:A1形式の右下セル番地)
・エクセルセル文字範囲設定 RANGEへ|RANGEにTEXTを|TEXT セル番地「RANGE」に文字列「TEXT」を設定する。(RANGE:A1形式のセル番地、TEXT:配列)

 とりあえず、かんたんなものから実装していますが、下記の問題が未解決です。

1.関数(命令)の名前が冗長すぎる
 ごらんのとおり、関数はかならず「エクセル」で始まります。次に対象のオブジェクト「シート」や「セル」が続いて、処理名となります。そのため、「エクセルセル値取得」のように、どうしても長い名前になってしまいます。
 すっきりさせるために、省略形を使ったり、命名ルールを無視するようなことはしたくありません。
2.プロパティとしての関数がほしい
 たとえば、「エクセルセル値取得」と「エクセルセル値設定」の関数のように、データを取得する関数と、データを設定する関数の2種類が必要です。
 ほんとうは、
   「A1」のエクセルセル値を表示
   「A1」のエクセルセル値は「愛」
 という感じに、ひとつの関数で取得と設定を行いたいのですが、プロパティ的な関数の作成方法がわかりません。
3.二次元配列の未実装
 なでしこ2.0には、まだ二次元配列が実装されていません。
 セルの範囲設定や範囲取得がもっと効率よくできればいいのですが。

 このうち、2と3はクジラさんに要望していますが、1だけは頭がイタイところです。
 関数名のわかりやすさを取るか、キータイプのしやすさを取るか、あなたならどっち!?

 なお、開発中のエクセルプラグインのVBプロジェクトはこちらです。VisualStudio2010で開発していますプラグインの様式変更により使用できません。
関連記事

この記事に含まれるtag : なでしこ2.0 プラグイン Excel 

FC2スレッドテーマ : プログラミング (ジャンル : コンピュータ

(記事編集) http://nadesocha.blog.fc2.com/blog-entry-144.html

2012/04/29 | Comment (0) | Trackback (0) | ホーム | ↑ ページ先頭へ ↑ |

Comment

コメント:を投稿する 記事: エクセルプラグインの作成

お気軽にコメント:をぞうぞ。
非公開 (管理人のみ閲覧可能なコメント:) にしたい場合には、ロック にチェックを入れてください。

  任意 : 後から修正や削除ができます。
  非公開コメント:として投稿する。(管理人にのみ公開)

Trackback

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。