- ベストアンサー
EXCEL-VBAで質問です
- EXCEL-VBAで部品図データベースを構築していますが、品番フォルダを選択する機能が必要です。
- フォルダ構成は「¥A社¥品番の頭文字¥品種¥ファイル名」となっており、品種フォルダはない場合もあります。
- 現在のコードでは品番の頭文字のフォルダを開くことができますが、それ以降の動作が正しくありません。修正方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
関連する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
- ベストアンサー
- Visual Basic
- 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”の部分に実在する ファイルのパスを入れるとうまくいきますが、変数を入れて処理するとうまくいきません。 どこか間違いがある、又は他によい記述のしかたがあれば教えてください。 よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- コードの簡略化 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 = "○○" 上記のような形でたくさん宣言しているのですが、 実際はもっとあり、これだととても長いコードになってしまいます(・・;) なんとか簡略化したいとは考えたのですがよい方法が見つからず 皆さんよろしくお願いいたします_(_^_)_
- ベストアンサー
- Visual Basic
- エクセル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
- ベストアンサー
- その他MS Office製品
- ■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 = "こんにちは" で、できますが、あえて上のような式で出来るでしょうか? 教えてください。
- ベストアンサー
- Visual Basic
- 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列目のみ¥は必要ないです。 それ以外を全て¥を数字の頭に付けたいのですが、よろしくお願いします。
- ベストアンサー
- Visual Basic
お礼
お世話になります。お返事遅くなり申し訳ありません。 ようやく、教えて頂いた数字と数字以外の組み合わせで 希望する動作の確認がとれました。 ありがとうございました。