Excelでセルに・・・
[データ]→[入力規則]で
「入力値の種類」を「リスト」にし、「元の値」にセルの範囲を与える
と、セルにボタンが付いて、それを押すとドロップダウンリストが現れます。
そのドロップダウンリストのハンドルを取得することは出来ないでしょうか?
宜しくお願いします
マクロを付くって、Delphiからキックすればどうですか?
HOtaさん こんにちは
ありがとうございます
・・・ですが どういうことなのか全然わかりません
すいません もうすこし教えてください
お願いします
何をやりたいかがわからないのですが、
そのドロップダウンリストのハンドルを取得するのは
なかなか難しそうですね。
だから、やりたい処理をExcelのマクロで記述して
それをDelphiから呼び出したらいいのではないでしょうか?
ってことをHOtaさんは言いたいのではないかと思います。
Fusaさん こんにちは
ありがとうございます
やりたいことは・・・
ドロップダウンリストのItems(?)をDelphiから追加・変更がしたいな
と思ってます
やはり無理っぽいでしょうか?
Validationオブジェクト取得できれば編集できそうな感じですね。
ただValidationオブジェクトはRangeオブジェクトのプロパティになるので
さきにRangeオブジェクトを特定する必要がありますね。
Rangeさえ取得できればあとはマクロ参考でできるかも。
Validationオブジェクトいじったことないので想像ですが・・・
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で記述するにはどうすれば良いかわかりません
もう少し教えていただけないでしょうか?
ままさん、
開発環境も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;
Mr.XRAYさん ありがとうございます
>開発環境もExcelのバージョンも、OLEObjectなのかTExcelApplictionを使用
>しているのかも何にも書いてないので、文句はなしです。
大変失礼しました
WindowsXP(SP2) + Delphi7でOLEObjectで進めていました
TExcelApplictionでやってみたところうまくいきました
ありがとうございました
ただ
>ExcelApplication.DisplayAlerts[LCID] :=True;
これがエラーになるので とりあえずコメントアウトしてしまいました
ツイート | ![]() |