Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11340 / 13644 ツリー ←次へ | 前へ→

【16622】ハイフンを自動で入力 初心者 04/8/4(水) 15:27 質問[未読]
【16624】Re:ハイフンを自動で入力 IROC 04/8/4(水) 15:32 回答[未読]
【16626】Re:ハイフンを自動で入力 初心者 04/8/4(水) 16:00 質問[未読]
【16628】Re:ハイフンを自動で入力 Asaki 04/8/4(水) 16:03 回答[未読]
【16630】Re:ハイフンを自動で入力 初心者 04/8/4(水) 16:29 質問[未読]
【16631】Re:ハイフンを自動で入力 Asaki 04/8/4(水) 16:38 回答[未読]
【16632】Re:ハイフンを自動で入力 初心者 04/8/4(水) 16:57 質問[未読]
【16633】Re:ハイフンを自動で入力 Asaki 04/8/4(水) 17:08 回答[未読]
【16634】Re:ハイフンを自動で入力 初心者 04/8/4(水) 17:18 質問[未読]
【16635】Re:ハイフンを自動で入力 Asaki 04/8/4(水) 17:25 回答[未読]
【16636】Re:ハイフンを自動で入力 初心者 04/8/4(水) 17:33 質問[未読]
【16637】Re:ハイフンを自動で入力 Asaki 04/8/4(水) 17:36 回答[未読]
【16638】Re:ハイフンを自動で入力 初心者 04/8/4(水) 17:49 質問[未読]
【16640】Re:ハイフンを自動で入力 Asaki 04/8/4(水) 17:55 回答[未読]
【16641】Re:ハイフンを自動で入力 初心者 04/8/4(水) 18:17 お礼[未読]

【16622】ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 15:27 -

引用なし
パスワード
   こんにちは よろしくお願いします。
123456789のような9桁の管理コードがあります。
これを1-234-567-89のように、1桁-3桁-3桁-2桁に自動でハイフンを入れるマクロはありますか?「セル」-「表示形式」−「ユーザー定義」で表示する方法ではなく、実際にハイフンを入れる方法があったら教えてください。
どうぞよろしくお願いします。

【16624】Re:ハイフンを自動で入力
回答  IROC  - 04/8/4(水) 15:32 -

引用なし
パスワード
   mid,right,left 関数でできますよ。

【16626】Re:ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 16:00 -

引用なし
パスワード
   ありがとうございます。シート上でちゃんと表示できました。
初心者で申し訳ありませんが、これをマクロで実行する場合ですが、A列に100行ほどの管理コードがあり、すべてにこの関数を実行する場合、A○セルの変数の置き換え方はどうすればよいのでしょう?さっきから自分でやっているのですが、変数の宣言のところでwith変数が見つかりませんとうまく動きます。宜しくご指導ください。

▼IROC さん:
>mid,right,left 関数でできますよ。

【16628】Re:ハイフンを自動で入力
回答  Asaki  - 04/8/4(水) 16:03 -

引用なし
パスワード
   こんにちは。

>変数の宣言のところでwith変数が見つかりませんとうまく動きます。
??
取り敢えず、コードが分からないのでなんともいえません。

A1:A5セルをループするサンプルです。
新規のシートを追加して、実行してみてください。
Sub Test()
  Dim i As Long
  For i = 1 to 5
    Cells(i,1).Value = i
  Next i
End Sub

【16630】Re:ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 16:29 -

引用なし
パスワード
   ありがとうございます。
普通シート上の関数だとB1セル(空白セル)に関数を書いて=left(A1,2)&"-""mid(A1,2,3)&・・・・のようにどのセルの値(この場合A1)を参照してと入れると思うのですが、A1を変数にしたかったですがうまくいきません。どうすればよいでしょうか?よろしくお願いします。

▼Asaki さん

>こんにちは。
>
>>変数の宣言のところでwith変数が見つかりませんとうまく動きます。
>??
>取り敢えず、コードが分からないのでなんともいえません。
>
>A1:A5セルをループするサンプルです。
>新規のシートを追加して、実行してみてください。
>Sub Test()
>  Dim i As Long
>  For i = 1 to 5
>    Cells(i,1).Value = i
>  Next i
>End Sub

【16631】Re:ハイフンを自動で入力
回答  Asaki  - 04/8/4(水) 16:38 -

引用なし
パスワード
   先のサンプルは、
>A1を変数に
してますよ。

Cells(i,1).Value
この部分がA1の入力内容を指しています。

【16632】Re:ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 16:57 -

引用なし
パスワード
   何度もすみません。
下のどこが違っているのでしょうか?うまくいきません。
Sub Test()
 Dim i As Long
   
i=Left(i, 1) & "-" & Mid(i, 2, 3) & "-" & Mid(i, 6, 3) & "-" & Right(i, 2)
  
  For i = 1 To 5
    Cells(i, 1).Value = i
  Next i

End Sub


▼Asaki さん:
>先のサンプルは、
>>A1を変数に
>してますよ。
>
>Cells(i,1).Value
>この部分がA1の入力内容を指しています。

【16633】Re:ハイフンを自動で入力
回答  Asaki  - 04/8/4(水) 17:08 -

引用なし
パスワード
   Cells のヘルプをご覧ください。
Cells(行,列)と指定し、例の場合は、行番号をiという変数にして、
1〜5まで可変にすることにより、A1:A5セルについて、順次処理します。

>i=Left(i, 1) & "-" & Mid(i, 2, 3) & "-" & Mid(i, 6, 3) & "-" & Right(i, 2)
iは、行番号です。
編集用の変数を追加して(String型)、これに設定してください。

また、
Cells(i, 1).Value
が、セルの内容を表しています。
>Left(i, 1)

Left(Cells(i, 1).Value, 1)
このような感じになります。

サンプルは、実行されましたか?
実行すると、何をしているか分かると思うのですが。

【16634】Re:ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 17:18 -

引用なし
パスワード
   度々ありがとうございます。
サンプルは実行しました。
理解できるのですが・・・
下のマクロはやっぱり見当違いでした。どうしてでしょう??

Sub Test()
  Dim i As Long
  Dim a As String
 

  a = Left(Cells(i, 1).Value, 1) & "-" & Mid(Cells(i, 1).Value, 2, 3) & "-" & Mid(Cells(i, 1).Value, 6, 3) & "-" & Right(Cells(i, 1).Value, 2)
  
  For i = 1 To 5
    Cells(i, 1).Value = i
  Next i

End Sub


▼Asaki さん:
>Cells のヘルプをご覧ください。
>Cells(行,列)と指定し、例の場合は、行番号をiという変数にして、
>1〜5まで可変にすることにより、A1:A5セルについて、順次処理します。
>
>>i=Left(i, 1) & "-" & Mid(i, 2, 3) & "-" & Mid(i, 6, 3) & "-" & Right(i, 2)
>iは、行番号です。
>編集用の変数を追加して(String型)、これに設定してください。
>
>また、
>Cells(i, 1).Value
>が、セルの内容を表しています。
>>Left(i, 1)
> ↓
>Left(Cells(i, 1).Value, 1)
>このような感じになります。
>
>サンプルは、実行されましたか?
>実行すると、何をしているか分かると思うのですが。

【16635】Re:ハイフンを自動で入力
回答  Asaki  - 04/8/4(水) 17:25 -

引用なし
パスワード
   a という変数に文字列を編集したのですから、セルに設定するときには、aを使わないと。
また、a の編集処理はループの中に入れてください。
ループの外では、i が正しくありません。

ちなみに、元データを上書きしてしまいますが、大丈夫ですか?
一旦、隣の列に表示するなどにしては?
隣の列 --> Cells(i,2)

【16636】Re:ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 17:33 -

引用なし
パスワード
   ??もうしわけありません。説明して頂いた意味が理解できません。
もう少し具体的に教えていただくと助かります。
よろしくお願いします。

▼Asaki さん:
>a という変数に文字列を編集したのですから、セルに設定するときには、aを使わないと。
>また、a の編集処理はループの中に入れてください。
>ループの外では、i が正しくありません。
>
>ちなみに、元データを上書きしてしまいますが、大丈夫ですか?
>一旦、隣の列に表示するなどにしては?
>隣の列 --> Cells(i,2)

【16637】Re:ハイフンを自動で入力
回答  Asaki  - 04/8/4(水) 17:36 -

引用なし
パスワード
   取り敢えず、2箇所だけ変えてみてください。
>a の編集処理はループの中に入れてください。
→ For 〜
    a = 〜
  Next

>セルに設定するときには、aを使わないと。
→ Cells().Value = a

【16638】Re:ハイフンを自動で入力
質問  初心者 E-MAIL  - 04/8/4(水) 17:49 -

引用なし
パスワード
   何度もありがとうございます。
実行しましたが、A1からA5まで1,2,3,4,5に変わってしまいました。

▼Asaki さん:
>取り敢えず、2箇所だけ変えてみてください。
>>a の編集処理はループの中に入れてください。
> → For 〜
>    a = 〜
>  Next
>
>>セルに設定するときには、aを使わないと。
> → Cells().Value = a

【16640】Re:ハイフンを自動で入力
回答  Asaki  - 04/8/4(水) 17:55 -

引用なし
パスワード
   これでどうでしょうか?
うまくいったら、各行でどのような処理をしているのか、ヘルプなどで調べてみてください。

Sub Test()
  Dim i As Long
  Dim a As String
 
  For i = 1 To 5
    a = Left(Cells(i, 1).Value, 1) & "-" & Mid(Cells(i, 1).Value, 2, 3) _
      & "-" & Mid(Cells(i, 1).Value, 6, 3) & "-" & Right(Cells(i, 1).Value, 2)
    Cells(i, 2).Value = a
  Next i

End Sub

【16641】Re:ハイフンを自動で入力
お礼  初心者 E-MAIL  - 04/8/4(水) 18:17 -

引用なし
パスワード
   ありがとうございます。出来ました。
勉強になりました。


▼Asaki さん:
>これでどうでしょうか?
>うまくいったら、各行でどのような処理をしているのか、ヘルプなどで調べてみてください。
>
>Sub Test()
>  Dim i As Long
>  Dim a As String
> 
>  For i = 1 To 5
>    a = Left(Cells(i, 1).Value, 1) & "-" & Mid(Cells(i, 1).Value, 2, 3) _
>      & "-" & Mid(Cells(i, 1).Value, 6, 3) & "-" & Right(Cells(i, 1).Value, 2)
>    Cells(i, 2).Value = a
>  Next i
>
>End Sub

11340 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free