• ベストアンサー

エクセル、マクロで「末尾を1文字削除」したいのですが

またまた、お願いします。 エクセル初心者向けの入力支援としてマクロを使っています。 【やりたい事】 セルを選択しマクロを実行すると「該当セルの末尾1文字が削除される」というのは可能でしょうか? カーソルを入れてBSすれば済むだけの事ですが、諸般の事情で「セル選択+マクロ実行」の動作にしたいのです。 どなたかよろしくお願いします(ponta_024)

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

こんな感じでしょうか。 Sub DeleteEndLetter()   Dim r As Range   For Each r In Application.Selection     If Len(r.Value) > 0 Then       r.Value = Left(r.Value, Len(r.Value) - 1)     End If   Next End Sub

ponta_024
質問者

お礼

ham_kamo様 ありがとうございました。 いろいろな記述の方法があるようですね。モジュールに コピーしていじくり回してみましたが、ham_kamoさんの 方法だと空白で実行してもエラーがでませんでした。 そこが相違点なのですか? 早速明日から会社で実験してみます。 ebinamori様 ham_kamo様 ありがとうございます(ponta)

その他の回答 (1)

  • ebinamori
  • ベストアンサー率21% (96/439)
回答No.1

Sub Macro1() Dim str As String Dim num As Integer str = ActiveCell.Text num = Len(str) ActiveCell = Left(str, num - 1) End Sub

ponta_024
質問者

お礼

解決しました! ebinamori様 早速のご回答ありがとうございます。 何時間悩んでも、知識がないので意味ないですね(笑) みなさんに聞けば簡単に解決してしまうのですね・・・。 これからもよろしくお願いします(ponta)

関連するQ&A

  • Excel マクロについて

    Excelで、セルを選択して、マクロを実行すると、その選択したセルに赤マル(オートシェイプの)がはいるようなマクロをつくりたいのですが・・・。まだ、マクロは使ったことが無いもので・・・。詳しくお願いします。

  • excelで"末尾に特定の文字列を含まない"行を削除したい

    excelでセル末尾に特定の文字列を含まない行を削除したいのですが、どのようにすればいいのでしょうか。 実際の書類はA列のみにずらっとメールアドレスが3万行並んでおり、この中には不完全なメールアドレス"hoge@hoge.jp.ne"等があるため、一般的な末尾に来るべき文字列".jp" ".com" ".net" などが末尾にないセルを削除したいです。また、"hoge@hoge@hoge.jp" というアドレスも存在するため、"@"が2個以上含まれたセルも削除できると助かります。 マクロの実行方法はわかりますが勉強不足で書き方がわかりません。我が儘ですが、お知恵を拝借いただけると幸いです。よろしくお願い致します。

  • マクロを実行しても、画面を動かさないようにするには

    「エクセル」で、 「複数行のセルを選択して マクロを実行すると、 その隣にある数字が 選択した部分のセルを結合して 表示される」 というマクロを作ったのですが、 マクロを実行する度に 「一番最初にマクロの実行を 行ったセル」にカーソルが移動してしまい、 困っています。 たとえば、 選択・指定をしたのが 「C840」のセルだったとしても、 実行を押すと、画面は 「C2」のところに戻ってしまうのです。 (マクロ自体は正常に実行されます) 1回1回元の画面までスクロール させなければならず、面倒です。 どうすれば良いのでしょうか?

  • エクセルでのマクロ作成

    エクセルで作成したボタンをクリックすると以下の事を行うマクロを作りたいと思っています。 (1)最初に貼り付けたいセルの範囲をドラッグで選択する。(手動) (2)マクロを登録したボタンを押す。 (3)マクロ内で指定したセル(たとえば $A$1)をコピーして、(2)でボタンを押してマクロを実行する前に(1)で選択したセルの範囲に貼り付ける。 VBAが分からないので難儀しています。 宜しくお願いします。

  • エクセルマクロ特定のセル

    マクロの勉強したばかりですみませんが、 エクセル2003で、特定のセルが選択されたときにマクロを実行したいのですが、可能でしょうか? どうやればよいか教えていただきたいです。

  • エクセル・マクロで「特定セル選択時のみ」実行可能な・・・

    いつも「作成依頼」のような質問で大変恐縮ですが、よろしくお願いします。 【状況】 A1・A2・A3のいずれか一箇所を選択状態にし、マクロを実行すると「要確認!」という文字が 記入されるという単純なものを使っています。 【問題点】 ところが無関係なセルを選択中に実行してしまうと、そのセルで実行されてしまい、気がつくと「要確認!」が とんでもない所に発生してしまいます。 実行範囲が3つのセルにまたがっており、あらかじめ固定することが出来ません。 【やりたい事】 A1・A2・A3のいずれか一箇所が選択されている時のみに実行させる方法はないでしょうか? どなたか教えてください(ponta_024)

  • エクセル,マクロのTrimの使い方

    エクセル2000を使っているのですが,マクロの使い方がよくわかりません. コピーペーストしてきた大量の文字行列の先頭末尾に余分な空白があって正しくソートされません.そこで,Trimを使おうと思ったのですが,使い方がいまいちよくわからず,エラーが出て実行できません. また,重複した内容のセルを抽出・削除もしたいのです. どうぞ教えてくださいm(_ _)m

  • エクセルVBAで実行する対象を選択文字列にするには?

    エクセルVBAで文字列を半角や全角にするマクロをつくっています。 私は、”あるセルに対して”はできるんですが、 その対象文字列を、”カーソルで選択して反転したところに対して”実行できるようにしたのです。できるんでしょうか。 よろしくおねがいします。

  • エクセルマクロでご教授下さい。

    エクセルマクロでご教授下さい。 1.あるマクロをセルを入力(Enter)したら実行するには どのように記述すればいいでしょうか? 例えばG12に文字を入力しEnterした時 に実行したい。 2.あるマクロをシートを選択した時に実行するには どのように記述すればいいでしょうか? 以上宜しくお願い致します。

  • エクセルのマクロ

    エクセルでマクロを使うときにセルに入力した数値などを変えた時に自動でマクロを実行するようにできませんか?