• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL-VBAで質問です)

EXCEL-VBAで質問です

このQ&Aのポイント
  • EXCEL-VBAで部品図データベースを構築していますが、品番フォルダを選択する機能が必要です。
  • フォルダ構成は「¥A社¥品番の頭文字¥品種¥ファイル名」となっており、品種フォルダはない場合もあります。
  • 現在のコードでは品番の頭文字のフォルダを開くことができますが、それ以降の動作が正しくありません。修正方法を教えてください。

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

  • ベストアンサー
  • turuzou
  • ベストアンサー率33% (15/45)
回答No.1

こんなので、ヒントになりますか? 勘違いならお許し下さい。 For x = 1 To Len(TextBox1)  If Mid(TextBox1, x, 1) Like "#" Then   '数字  Else   '数字以外  End If Next x

nanami0310
質問者

お礼

お世話になります。お返事遅くなり申し訳ありません。 ようやく、教えて頂いた数字と数字以外の組み合わせで 希望する動作の確認がとれました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルVBAのユーザーフォームにセルデータを

    Excel2007を使っています。 VBA初心者ですがユーザーフォームのテキストフォームにエクセル内のセルデータを表示させたいと考えています。 以下のコードをユーザーフォームのコードに書いてユーザーフォームを走らせましたがユーザーフォームは表示するのですがデータがまったく表示されません。 どなたかご教授いただけませんでしょうか。 Sub Farst() Dim Data1 As String Dim Data2 As String Dim Data3 As String Dim Data4 As String Dim Data5 As String Dim Data6 As String Dim Data7 As String Dim Data8 As String Dim Data9 As String Dim Data10 As String Dim ActiveRow As String ActiveRow = 4 With Worksheets("MDH,MDO") Data1 = .Cells(ActiveRow, 1) Data2 = .Cells(ActiveRow, 2) Data3 = .Cells(ActiveRow, 3) Data4 = .Cells(ActiveRow, 4) Me.TextBox1連番.Text = Data1 Me.TextBox2品番.Text = Data2 Me.TextBox3品番2.Text = Data3 Me.TextBox4品番3.Text = Data4 End With End Sub

  • Excel2003 VBA Shell関数について

    AフォルダにあるZipファイルを検索し、そのファイルを解凍ソフトで開きBフォルダに解凍するマクロを作成中です。解凍ソフト自体に保存先フォルダを設定していますので、Bフォルダは関係ありません。 ---------------------------- Sub AAA Dim ksDir As String Dim ktExe As String Dim fName As String Dim i As Long  Const KTS As String = ".zip"  ksDir = "\\xxx.xxx.xxx.xxx\A\"  fName = Dir (ksDir & "*" KTS , vbNormal)   Do While fName = <> ""   Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"    i = i + 1    nName = Dir Loop End Sub -------------------------- 「Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"」の”ktDir & fName”の部分に実在する ファイルのパスを入れるとうまくいきますが、変数を入れて処理するとうまくいきません。 どこか間違いがある、又は他によい記述のしかたがあれば教えてください。 よろしくお願いします。

  • コードの簡略化 VBA

    dim a as string dim b as string dim c as string dim d as string dim e as string dim f as string dim g as string dim h as string dim i as string a = "○○" b = "○○" c = "○○" d = "○○" e = "○○" f = "○○" g = "○○" h = "○○" i = "○○" 上記のような形でたくさん宣言しているのですが、 実際はもっとあり、これだととても長いコードになってしまいます(・・;) なんとか簡略化したいとは考えたのですがよい方法が見つからず 皆さんよろしくお願いいたします_(_^_)_

  • エクセルVBAでの変数

    いつもお世話になります。 今回の『壁』は”変数”です。 変数の中に更に変数を持たせることはできますか? 何をしたいかと言いますと… dim mon1 as string dim mon2 as string dim mon3 as string dim mon4 as string dim mon5 as string dim tue1 as string dim tue2 as string …というように月曜から日曜までの頭3文字プラス1~5の組み合わせの変数を作りたいのですが、 この調子で作っていくと35コになってしまいます。 そこで、曜日の頭3文字より後ろは決まって1~5のため、 dim i as integer for i = 1 to 5 next i …と組み合わせられないかと思ったのです。 どなたか知恵をお貸しください。 よろしくお願いします。

  • エクセル VBA フォルダを閉じる

    いつもお世話になっております。 下記のプロシージャでフォルダを開いているのですが、このフォルダを閉じる場合はどのように記述すればよろしいのでしょうか? よろしくお願いいたします。 Sub opn_fld() Dim myFol As String, mymsg As Integer Dim IE As Object myFol = "C:\ABC\" Shell "C:\Windows\Explorer.exe " & myFol, vbNormalFocus End Sub

  • ■Excel VBA グローバルな書き方■

    Sub 跳ね返る() Dim time1 As Integer, time As Integer Dim X As Integer, Y As Integer Dim hyouji As String, yoko As String, tate As String hyouji = "●" X = 1 Y = 1 yoko = "右" tate = "上" Do Cells(X, Y).Value = hyouji '★ For time1 = 0 To 1000 For time2 = 0 To 1000 Next Next Cells(X, Y).Value = hyouji For time1 = 0 To 1000 For time2 = 0 To 1000 Next Next          '★ If yoko = "右" Then Y = Y + 1 Else Y = Y - 1 End If If Y = 30 Then yoko = "左" ElseIf Y = 1 Then yoko = "右" End If If tate = "上" Then X = X + 1 Else X = X - 1 End If If X = 20 Then tate = "下" ElseIf X = 1 Then tate = "上" End If Loop End Sub ************************************ 上記のプログラムを Dim a() EndSub Dim b() EndSub Dim c() endSub Sub main() a b c EndSub のような、mainを動かせばabcも動く グローバルな(ローカルでもいいのですが) プログラムにするにはどうしたらいいですか? ★印から★印までの間の動作が同じような動作で 二つあるので、それを一つにまとめ 尚且つ、表示と時間稼ぎと表示削除の 3つの動作を分けた形にしたいです。 質問が下手で申し訳ありません…;;

  • VBAのプロパティ設定の仕方

    初心者ですいません。 オブジェクトのプロパティを変数を使って設定できるでしょうか? 例えば、こんなプログラムを書きたいのですが、 dim i as string i = "TextBox1" i.Value = "こんにちは" 実際は TextBox1.Value = "こんにちは" で、できますが、あえて上のような式で出来るでしょうか? 教えてください。

  • VBAのダイアログ表示について

    VBA ダイアログ表示について 通常マイドキュメントのダイアログじゃなく直接下記の命令文で指定のフォルダをフォルダを開くダイアログを指定したつもりですが、なぜかマイドキュメントのダイアログが表示されます。 初心者でVBAの事良くわかっていません。 だれかアドバイスをお願いできないでしょうか? Dim Openfile As String Chdir "\Main\VBAdata" Openfile = Application.getOpenFilename("テキスト ファイル,*.txt")

  • ●Excel VBA 配列●教えて下さい

    a~tの文字が順々に文字を追っていくプログラムにしたいと思い 配列を使用したのですが…プログラムが稼動しません、 下記のプログラムでは何が足りないのでしょうか わかる方いたら教えて下さい; 配列の使い方についてアドバイスがあれば そちらも教えていただきたいです…。 '――ここから―― Dim time1 As Integer, time2 As Integer, n As String Dim X As Integer, Y As Integer Dim yoko As String, tate As String Dim suuji (19) As String Sub 描画() Cells(X, Y).Value = suuji End Sub Sub 削除() Cells(X, Y).Value = "" End Sub Sub 待機() For time1 = 0 To 1000 For time2 = 0 To 1000 Next Next End Sub Sub 座標移動() If yoko = "右" Then Y = Y + 1 Else Y = Y - 1 End If If Y = 30 Then yoko = "左" ElseIf Y = 1 Then yoko = "右" End If If tate = "上" Then X = X + 1 Else X = X - 1 End If If X = 20 Then tate = "下" ElseIf X = 1 Then tate = "上" End If End Sub Sub main() suuji (0) = a suuji (1) = b suuji (2) = c suuji (3) = d suuji (4) = e suuji (5) = f suuji (6) = g suuji (7) = h suuji (8) = i suuji (9) = j suuji (10) = k suuji (11) = l suuji (12) = m suuji (13) = n suuji (14) = o suuji (15) = p suuji (16) = q suuji (17) = r suuji (18) = s suuji (19) = t For n = 0 To 19 Cells(X,Y).Value = suuji (n) Next X = 1 Y = 1 yoko = "右" tate = "上" Do 描画 待機 削除 待機 座標移動 Loop End Sub '――ここまでです―― 何度も同じような質問をさせてもらってすみません;

  • VBAについて質問します。

    UserFormにTextBoxを縦13個×横9個=117個で並べています。 ExcelのSheetに入力された内容をUserForm内のTextBoxに表示しています。 以下の様に・・・   Dim y As Integer Dim x As Integer For y = 1 To 13 For x = 1 To 9 Controls("TextBox" & (y - 1) * 9 + x) = ThisWorkbook.Sheets(2).Cells(y, x) Next x Next y このコードに表示された数字の先頭に¥を付けたいのですが、どの様にしたら良いでしょうか? だだしUserForm上のTextBoxで縦13個×横9個のうち、縦1列目と縦3列目と縦5列目のみ¥は必要ないです。 それ以外を全て¥を数字の頭に付けたいのですが、よろしくお願いします。

専門家に質問してみよう