プロが教える店舗&オフィスのセキュリティ対策術

お世話になっております。
早速質問です。

エクセルのマクロを作成しています。
いくつかセルに文字や数値を入力し、マクロを実行した時、
自動的にシングルクォーテーションマーク(')を文字や数値の両端に
付けたい(例:aaaaa→'aaaaa')のですが
いろいろ探していますが見つかりません。

お力をお貸し頂きませんでしょうか。
よろしくお願い致します。

A 回答 (2件)

色々と曖昧ですね


まず文字や数値を直接入力したセルが対象ですか。つまり式で他のセルを参照して「文字や数値」が表示されているセルは対象外ということですか?

また「値」を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個のセルに値を入力し、マクロ実行することで
タブ区切りのテキストファイルを作成することを考えています。

補足日時:2007/07/06 13:43
    • good
    • 0

こんにちは。



前回、回答した者です。結局、書かざるを得ないようですね。(^^;

そうしないと、納まらないようですね。出来れば、仕事は仕事として割り切って、ご自分の勉強とは別にしたほうがよいですね。

私自身も、あるプロの方から、分からなかったら自分で勉強をしようとしていたら、いつまで経っても仕事は出来上がらないよって言われました。ある程度、ベースが出来た後は、検索して、それを使ってしまうことですね。ただ、人に聞いて解決するよりも、自分で探したほうが価値があるかもしれません。

なるべく標準モジュールに登録して使ってみてください。
なお、デリミタを、「,」に変えれば、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
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
Wendy02さんの言うとおり、先輩から同じことを言われました。
自分で勉強する分には構わない、価値もあるが、ネットにあるサンプルコード
を使うことも大切。それが後々の力になる。人のまねをすること。
そこから自分のオリジナルの方法を見つけていけばいい。
とのことです。

参考に使わさせて頂きます。
仕事とプライベートの割り切り方も勉強ですね。
本当にありがとうございました!!

お礼日時:2007/07/06 18:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!