こんにちは。
Delphi 10.1 Belrinで開発しています。
Excelのセル値の先頭にシングルクォーテーションがついている場合、
そのシングルクォーテーションを削除したいのですが可能でしょうか。
ネットにヒントがないか探しているのですが
見つかりませんでした。
ご存知の方いらっしゃりましたらお手数ですが教えていただけませんでしょうか。
よろしくお願いいたします。
他の値のときは、セルの値を取得したり、セルに値を格納したりは、出来ていて、
シングルクォーテーション を含むデータのときだけ、うまくいかないということですか?
Excel VBA で セルに入力されたシングルクオーテーションを Value の値として取得したい
https://answers.microsoft.com/ja-jp/msoffice/forum/all/excel-vba-%E3%81%A7/32ba6299-65be-4c9e-9215-ac0e056f3c1d
によると、PrefixCharacterを使うとか・・
状況はよく分からないのですが,
(1) Excel のセルから自列を取得
(2) 先頭文字がシングルクォーテーションなら Delete(LText, 1, 1); で削除
(3) それを Excel のセルに代入
というのはどうでしょう ?
> PrefixCharacterを使うとか・・
PrefixCharacterはReadOnlyみたいでしたね。
検索してみると、VBAでシングルクォーテーションを削除する場合、
ValueにValueを格納する例がありましたが、Delphiで試したら、削除されていないみたいですね。
Excelで文字列指定となるシングルコーテーションが自動的に出てしまう問題の解決方法。
https://www.transparently.jp/excel/character_string/
で、「書式のクリア」が紹介されていたので、
PrefixCharacter が「'」だったら、ClearFormatsを呼び出してみたら、
シングルクォーテーション、消えたみたいです。
igyさん、Mr.XRAYさんアドバイスありがとうございます。
お返事いただいてから試しています。
igyさんのアドバイスの
> PrefixCharacter が「'」だったら、ClearFormatsを呼び出してみたら、
> シングルクォーテーション、消えたみたいです。
アドバイス通りの現象を再現できました。
コードを変更してシングルクォーテーションを削除できました。
Mr.XRAYさんから頂いたアドバイスでもコーディングしシングルクォーテーションを削除できました。
お二人とも丁寧なアドバイスを頂きまして感謝いたします。
今後ともよろしくお願いいたします。
> (2) 先頭文字がシングルクォーテーションなら Delete(LText, 1, 1); で削除
シングルクォーテーションってちょっと面倒なんですよね.
参考処理を提示しておきます.
procedure TForm1.Button1Click(Sender: TObject);
var
LText : string;
begin
LText := Edit1.Text;
if LText[1] = '''' then begin
Delete(LText, 1, 1);
Edit1.Text := LText;
end;
end;