• ベストアンサー

【EXCEL2010 VBA】 部分的書式設定

初心者ながら医療業務用マクロを作っています。 テキストボックス内の文字のうち、最初の改行までを取消線解除する方法を教えてください。 何卒よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

例えば、対象のテキストボックスを選択した状態で、 Sub Sample() Dim LfPos As Long     With Selection         LfPos = Application.Find(vbLf, .Text)         .Characters(Start:=1, Length:=LfPos).Font.Strikethrough = False         .Characters(Start:=LfPos, Length:=Len(.Text)).Font.Strikethrough = True ' (1)     End With End Sub こんな感じでいけると思います。 文字通り、 > 最初の改行までを取消線解除する方法 つまり、あらかじめ対象セル全体に取消線を設定している場合は(1)は不要です。 変数LfPosに「最初の改行の文字位置」を代入していますが、 変数を使う必要は特にありません。

usny-stk
質問者

お礼

ありがとうございました

usny-stk
質問者

補足

ユーザーフォーム内のテキストボックスになります。説明不足で申し訳ありません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

ん? > ユーザーフォーム内のテキストボックスになります。 なるほど。 それは主に仕様の関係で残念ながら無理です。

usny-stk
質問者

お礼

ありがとうございました

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【EXCEL2010 VBA】 部分的書式設定

    初心者ながら医療業務用マクロを作っています。 テキストボックス内の1行目のみ取消線を解除する方法を教えてください。 UserForm1.TextBox12.Lines(1).Font.Strikethrough = False これではさすがにエラーが出ました; 何卒よろしくお願いします。

  • VBA 書式設定を保持したままセル内の文字を追記

    EXCEL2010で医療系マクロを作っています。 CheckBox1は、Selection.Offset(0, -1)のセル内の文字を取消線にする為のチェックボックスです。 TextBox11は、Selection.Offset(0, -1)のセル内の文字の下に追記する為のテキストボックスです。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ If CheckBox1 = True Then ' ' '取消線がある場合 Selection.Offset(0, -1).Characters(InStr(Selection.Offset(0, -1), vbLf), 1000).Font.Strikethrough = True Selection.Offset(0, -1).Value = Selection.Offset(0, -1).Value + vbLf + TextBox11.Value ' ' '☆追記して改行以降を取消し追記を解除 Else ' ' '取消線がない場合 Selection.Offset(0, -1).Value = Selection.Offset(0, -1).Value + vbLf + TextBox11.Value ' ' '☆追記 End If ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ この場合、Selection.Offset(0, -1)の文字にすでに取消線が設定されている場合にそれが外れたり、元々ついていなかったのについたりします。 書式設定を保持したままセル内の文字を追記することは可能でしょうか? 何卒ご教示のほどよろしくお願いします。

  • Excelの書式設定を元に戻すには?

    Excel初心者です。 あるフォントで、テキストボックスを使って表を作成中に、 操作を誤ってだと思いますが、テキストボックスの中の最後の文字 (○○様の“様”です。)が、全てのテキストボックスから 消えてしまいました。(表示されなくなってしまいました。) 他のテキストボックスの中の文字のフォントに変えると、 “様”が現れます。 この設定を解除するには、どうすれば良いのでしょうか。 Excelのヘルプで検索したりしましたが、解決出来ません(泣) どうしたら解除出来るか、教えていただけないでしょうか。 よろしくお願いします。

  • Excel2000VBA テキストボックス内での改行で・・・

    ユーザーフォームにテキストボックスを作り、 テキストボックス内での改行をできるように設定します。 このテキストボックスに入力されたデータをセルに入力すると セルでは改行したところに「・」が入ってしまいます。 例えばテキストボックスに  こんにちは[改行]  いい天気ですね と入力して、これをsheet1のA1に入力します。すると、  こんにちは・  いい天気ですね と入力されてしまいます。 この「・」を表示しないようにする方法はありますか? よろしくお願いします。

  • Excel2000でセルの書式設定を変更させたくない

    Excel2000でセルの書式設定を変更させたくない Excel2000を使用しています。 Excel2002?以降では、書式設定を保護できるらしいですが、2000ではそのような機能がありません。でも、データを貼り付けた際に書式設定を変更させたくないのですが、何か方法がありますでしょうか? 具体的には、シート内のある範囲内(B3-F43)までを書式設定で「縮小して全体を表示」に設定してあり、「折り返して全体を表示する」のチェックを外してセル1行で表示するよう設定しています。 ここに改行付きの文字列データをコピーして貼り付けると、「折り返して全体を表示する」に勝手にチェックが入ってセル1行では表示しきれなくなり、文字全体が読めなくなるのですが、この勝手にチェックされてしまう「折り返して全体を表示する」のチェックをマクロを使って、自動で外す方法とかありますでしょうか? とりあえず現状は貼り付け前に一度、テキストエディタで改行を削除する編集をしてからデータを貼り付けるようにしてるのですが、面倒なのでできれば改行付きデータを直接Excelに貼り付けても「折り返して全体を表示する」にチェックが入らないようにしたいのです。 マクロの知識はまったくないので、どなたかお知恵を貸していただけないでしょうか? 現在、他の件でマクロを教えていただいて、Thisworkbookという所に、Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)とかいうマクロを記述してあります。 Excelデータを上書きセーブする際にこのマクロが走るようなんですが、これに追記する形で、B3からF43までのセルの書式設定の「折り返して全体を表示する」のチェックを強制的に外すことができると助かるのですが。 同じシート内に、「折り返して全体を表示する」を使用しているセルもあるので、シート全体の書式設定を変えてしまうのではなく、あくまでB3からF43までの範囲のセルで設定したいのですが、こういうことはマクロで可能なのでしょうか?

  • エクセルVBAのテキストボックス改行について

    質問させて頂きます。 今VBAを使っているのですが TextBox内の改行がうまくいきません。 フォーム上にテキストボックスを置いて5~6行表示できる大きさにして、 (テキストボックス内に書いたものを保存ボタンでエクセル内の指定部分に反映させるコードを書き) それをマクロから開いて文字を入力している時に エンター押せば改行できると思っていたのですが出来ません。 CtrlやAlt押しながらもダメでした。 テキストボックスのプロパティ内に行を指定できる何かがあるのでしょうか? 色々いじりすぎて元に戻せなくなりつつあったので 質問させて頂きました。 ご存じの方おられましたら是非教えて下さい。 よろしくお願いします。

  • EXCELでフォームのテキストBOXに入力した文章を別セルに書き出すマ

    EXCELでフォームのテキストBOXに入力した文章を別セルに書き出すマクロ Excel VBAでフォームのテキストBOXに入力した文章を別セルに書き出すマクロを作成しています。 普通に書き出すことと、改行コードで改行させることはできます。 しかし、改行コード&決まった文字数(任意)で改行し、改行後の先頭に句読点が来たときには句読点で改行させるようにしたいです。 (句読点が行末に来る場合、任意の文字数に+1する) どのようにしたら良いでしょうか? 今行っている方法だと、1行で文字数での改行が2回行われるとおかしくなってしまいます。 ご教授ください

  • EXCEL VBA テキストボックスを見やすくしたい

    いつもお世話になっております。 EXCEL VBA のユーザーフォーム上の テキストボックスについて教えて下さい。 大きめのテキストボックスを作り 改行を許可して、数十文字を表示させることができたのですが、行と行の間が詰まりすぎていて、見づらいのです。 行間を空ける方法を教えて下さい。

  • Excel&VBA&マクロ?

    1月24日   1月24日 1月24日 → 1月24日 1月25日       1月25日 excelでスケジュールがあり、日にち別に 改行するようなマクロを作りたいのですが、 excel,マクロ、VBAに関して知識がほとんどない状態でして これから参考書を購入して勉強しようと思っているのですが 初心者にお勧めの参考書がありましたらよろしくお願いします。 また改行のやり方をヒントでもいいので お分かりになる方教えてください、よろしくお願い致します。

  • エクセルVBAでワードの編集

    お世話になります。 エクセルのマクロを使って、ワードファイルの編集を考えております。 エクセルからワードファイルを開いたり、文字の検索をしたりするのは ネット上で見つけたのですが、 エクセルのマクロを使ってワード文書に、テキストボックスなどを貼り付ける方法が判りません。 VBA初心者ですので、お手数お掛けしますが わかりやすく説明して頂ければ幸いです。

LENOVO L580 ライセンスキー不明
このQ&Aのポイント
  • SSDが故障し、Windows 11(元Windows 10アップデート)が起動しない問題について、復旧モードやUSBイメージ、初期CDの利用ができず、ライセンスキーも不明です。さらに、コマンドプロンプトからのコマンドも使用できないため、LENOVO社にシリアルナンバーを提供してもらう方法はあるのかを教えてください。
  • LENOVO L580でSSDが故障し、Windows 11(元Windows 10アップデート)が起動しない問題が発生しています。復旧モードやUSBイメージ、初期CDが利用できず、ライセンスキーも不明です。コマンドプロンプトからもSSDの破損のためコマンドが表示されません。シリアルナンバーを提供してもらう方法を教えてください。
  • LENOVO L580のSSD故障によりWindows 11(元Windows 10アップデート)が起動しない問題が発生しています。復旧モードやUSBイメージ、初期CDがなく、ライセンスキーも不明です。さらに、コマンドプロンプトからもSSDが破損しているためコマンドが表示されません。シリアルナンバーを提供してもらう方法があるか教えてください。
回答を見る