- ベストアンサー
セルに入力した数値に自動的に'をつけるマクロを作成した
お世話になっております。 早速質問です。 エクセルのマクロを作成しています。 いくつかセルに文字や数値を入力し、マクロを実行した時、 自動的にシングルクォーテーションマーク(')を文字や数値の両端に 付けたい(例:aaaaa→'aaaaa')のですが いろいろ探していますが見つかりません。 お力をお貸し頂きませんでしょうか。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 前回、回答した者です。結局、書かざるを得ないようですね。(^^; そうしないと、納まらないようですね。出来れば、仕事は仕事として割り切って、ご自分の勉強とは別にしたほうがよいですね。 私自身も、あるプロの方から、分からなかったら自分で勉強をしようとしていたら、いつまで経っても仕事は出来上がらないよって言われました。ある程度、ベースが出来た後は、検索して、それを使ってしまうことですね。ただ、人に聞いて解決するよりも、自分で探したほうが価値があるかもしれません。 なるべく標準モジュールに登録して使ってみてください。 なお、デリミタを、「,」に変えれば、CSV ファイル形式になります。 Sub Text_OutPut() Dim myPath As String Dim myCsvFN As String Dim Fno As Integer Dim i As Long Dim n1 As String, n2 As String Dim Delim As String Delim = vbTab 'デリミタ myPath = Application.DefaultFilePath & "\" '出力フォルダ myCsvFN = "Test1.txt" '出力ファイル名 Fno = FreeFile() Open myCsvFN For Output As #Fno For i = 2 To 26 'C列 If IsEmpty(Cells(i, 3)) Then n1 = "'NULL'" Else n1 = "'" & Cells(i, 3).Text & "'" 'F列 If IsEmpty(Cells(i, 6)) Then n2 = "'NULL'" Else n2 = "'" & Cells(i, 6).Text & "'" Print #Fno, String(2, Delim) & n1 & String(3, Delim) & n2 'C列とF列 n1 = "": n2 = "" Next Close #Fno End Sub
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
色々と曖昧ですね まず文字や数値を直接入力したセルが対象ですか。つまり式で他のセルを参照して「文字や数値」が表示されているセルは対象外ということですか? また「値」をaaaaa→'aaaaa'にするのですか? それとも表示上でaaaaa→'aaaaa'としたいのですか? エクセルでは先頭に「'」をつけてもプリフィックスとみなして表示されません。表示上'aaaaa'にするなら先頭には[''」をつけないとなりません。 とりあえず以下を参考にしてみてください。直接入力したセルデータの前後に「'」をつけるマクロです Sub Macro1() Dim r As Range For Each r In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 3) r.Value = Chr(39) & r.Value & Chr(39) Next r End Sub なおこのような場合は「'」をつけて何をしたいのか書いていただく方が、より的確な回答が書けると思いますよ。
補足
曖昧すぎてすいません。 ちょっと頭の中で整理できずに質問してしまいました。 実際は値をaaaaa→'aaaaa'にしたいのです。 セルに入力後、マクロを実行することで値を変更します。 実際作りたいマクロは80個のセルに値を入力し、マクロ実行することで タブ区切りのテキストファイルを作成することを考えています。
お礼
ご回答ありがとうございます。 Wendy02さんの言うとおり、先輩から同じことを言われました。 自分で勉強する分には構わない、価値もあるが、ネットにあるサンプルコード を使うことも大切。それが後々の力になる。人のまねをすること。 そこから自分のオリジナルの方法を見つけていけばいい。 とのことです。 参考に使わさせて頂きます。 仕事とプライベートの割り切り方も勉強ですね。 本当にありがとうございました!!