Excel VBA質問箱 IV

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

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


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

【7551】文字の取得 conan 03/9/8(月) 16:10 質問
【7556】Re:文字の取得 INA 03/9/8(月) 16:26 回答
【7557】Re:文字の取得 ぴろ 03/9/8(月) 16:28 回答
【7559】Re:文字の取得 ぴろ 03/9/8(月) 16:31 発言
【7561】Re:文字の取得 conan 03/9/8(月) 16:41 お礼

【7551】文字の取得
質問  conan  - 03/9/8(月) 16:10 -

引用なし
パスワード
   今、以下の様な事がわかりません。

1.あるセル(A1)に入力されている文字の最後から2番目の文字のみを
  代数(a)に代入する
2.あるセル(A1)に入力されている文字の最後から14番目から最後から10番目までの文字を代数(b)に代入する

という内容です。
例えばA1に”あいうえおかきくけこさしすせそ”と入力されているとして
1.なら(a)に”せ”が代入される。
2.なら(a)に”いうえおか”が代入される。

という風にしたいのですが。
どなたかご教授お願いします。

【7556】Re:文字の取得
回答  INA E-MAIL  - 03/9/8(月) 16:26 -

引用なし
パスワード
   試してみて下さい。
代数(a)→ 変数 a と解釈します。

>1.あるセル(A1)に入力されている文字の最後から2番目の文字のみを
>  代数(a)に代入する

Private Sub CommandButton1_Click()
Dim a As String
Dim strLength As Long '文字数

  strLength = Len(Range("A1").Value)
  a = Mid(Range("A1").Value, strLength - 1, 1)
 
  Msgbox a
End Sub


>2.あるセル(A1)に入力されている文字の最後から14番目から最後から10番目までの文字を代数(b)に代入する

Private Sub CommandButton2_Click()

Dim a As String
Dim strLength As Long '文字数

  strLength = Len(Range("A1").Value)
  a = Mid(Range("A1").Value, strLength - 13, 5)
  
  MsgBox a

End Sub

【7557】Re:文字の取得
回答  ぴろ  - 03/9/8(月) 16:28 -

引用なし
パスワード
   ▼conan さん:
こんなでどうでしょうか?

(a) = mid(sheet.range("A1").value,len(sheet1.range("A1"))-2,1)
(b) = mid(sheet.range("A2").value,len(sheet1.range("A2"))-10,5)

無理してそれぞれを一行にまとめたので少々見づらいですが、
Lenで求めたA1のセルの文字列の長さから(a)の場合は2引いた位置
からMid関数で1文字切り取る方法です。
同様に(b)の場合はA2の文字列の長さから10引いた位置からそれぞれ
Mid関数で4文字を切り取ります。

【7559】Re:文字の取得
発言  ぴろ  - 03/9/8(月) 16:31 -

引用なし
パスワード
   INAさんと回答がかぶってしまいましたが、
内容はほぼ同じだと思います。
INAさんの方がきちんと順序を踏んだソースを書いてくれているので
分かりやすいと思います。

【7561】Re:文字の取得
お礼  conan  - 03/9/8(月) 16:41 -

引用なし
パスワード
   INAさん、ぴろさん、ご教授ありがとうございます。
ぜひ、試させて頂きます。
また、質問があればよろしくお願いします。

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