Excelのドロップダウンリストのハンドル


まま  2007-07-04 19:41:40  No: 26932

Excelでセルに・・・
[データ]→[入力規則]で
「入力値の種類」を「リスト」にし、「元の値」にセルの範囲を与える
と、セルにボタンが付いて、それを押すとドロップダウンリストが現れます。

そのドロップダウンリストのハンドルを取得することは出来ないでしょうか?

宜しくお願いします


HOta  2007-07-04 22:20:56  No: 26933

マクロを付くって、Delphiからキックすればどうですか?


まま  2007-07-04 22:33:37  No: 26934

HOtaさん こんにちは
ありがとうございます
・・・ですが どういうことなのか全然わかりません

すいません  もうすこし教えてください
お願いします


Fusa  2007-07-05 18:59:25  No: 26935

何をやりたいかがわからないのですが、
そのドロップダウンリストのハンドルを取得するのは
なかなか難しそうですね。

だから、やりたい処理をExcelのマクロで記述して
それをDelphiから呼び出したらいいのではないでしょうか?

ってことをHOtaさんは言いたいのではないかと思います。


まま  2007-07-06 02:15:33  No: 26936

Fusaさん こんにちは
ありがとうございます

やりたいことは・・・
ドロップダウンリストのItems(?)をDelphiから追加・変更がしたいな
と思ってます

やはり無理っぽいでしょうか?


Ru  2007-07-06 02:27:53  No: 26937

Validationオブジェクト取得できれば編集できそうな感じですね。
ただValidationオブジェクトはRangeオブジェクトのプロパティになるので
さきにRangeオブジェクトを特定する必要がありますね。

Rangeさえ取得できればあとはマクロ参考でできるかも。
Validationオブジェクトいじったことないので想像ですが・・・


まま  2007-07-06 03:52:46  No: 26938

Ruさん  こんにちは
ありがとうございます
Ruさんの方法でいけそうなんですが・・・

VBAのHelpから引用なんですが
>With Range("e5").Validation
>    .Add Type:=xlValidateWholeNumber, _
>        AlertStyle:=xlValidAlertInformation, _
>        Minimum:="5", Maximum:="10"
>    .InputTitle = "整数値"
>    .ErrorTitle = "整数値"
>    .InputMessage = "5 から 10 の整数を入力してください。"
>    .ErrorMessage = "入力できるのは、5 から 10 までの値です。"
>End With
これをDelphiで記述するにはどうすれば良いかわかりません
もう少し教えていただけないでしょうか?


Mr.XRAY  URL  2007-07-06 07:29:36  No: 26939

ままさん、
開発環境もExcelのバージョンも、OLEObjectなのかTExcelApplictionを使用して
いるのかも何にも書いてないので、文句はなしです。
WindowsXP(SP2) + Delphi7 + Excel2000で動作確認しました。

VBAのHelpのValidation オブジェクトの使用例にあったものです。
現在選択中のセル範囲に対して設定します。

procedure TForm1.Button1Click(Sender: TObject);
var
     ARange : ExcelRange;
begin
     //エラー表示する
     ExcelApplication.DisplayAlerts[LCID] :=True;

     ARange:=ExcelApplication.ActiveWindow.RangeSelection;
     ARange.Validation.Add(xlValidateWholeNumber,
                           xlValidAlertStop,
                           xlBetween,
                           5,
                           10);
     ARange.Validation.InputTitle:='整数値';
     ARange.Validation.ErrorTitle:='整数値';
     ARange.Validation.InputMessage:='5 から 10 の整数を入力してください。';
     ARange.Validation.ErrorMessage:='入力できるのは、5 から 10 までの値です。';
end;


まま  2007-07-06 17:57:06  No: 26940

Mr.XRAYさん ありがとうございます

>開発環境もExcelのバージョンも、OLEObjectなのかTExcelApplictionを使用
>しているのかも何にも書いてないので、文句はなしです。

大変失礼しました
WindowsXP(SP2) + Delphi7でOLEObjectで進めていました

TExcelApplictionでやってみたところうまくいきました
ありがとうございました
ただ
>ExcelApplication.DisplayAlerts[LCID] :=True;
これがエラーになるので とりあえずコメントアウトしてしまいました


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加