Visual Basic

全22569件中201~220件表示
  • 至急お願いします。vbaでxmlファイルを読み込み

    【Excel マクロ】xmlファイルを読み込み、一覧形式で出力ファイルを作成したいです。有識者の方、ご教示いただけますと幸いです。 ◆やりたいこと①:指定したフォルダ内(C:/属性一覧)にxmlファイルが複数格納されています。(例:文書①.xml、文書②.xml…) このxmlファイルを読み込みたいです。 ◆やりたいこと②:①で読み込んだxmlファイルのデータの中身は下記のとおりです。 こちらから、"Path"と"Property Display"を出力するファイルを作成したいです。 下記にxmlファイルの中身を記載します。 <PropertiesInfo> <Documrent ="123456---------"> <DocumentKind = "abcde-----------" Path = "/階層1/階層2/階層3"> <FolderName = "\^-)('&%$#"-----------------------------------------------"> <System> <Property Display = "文書名" Value = "〇〇〇" ListPath = "---------------------------" > <Property Display = "作成日時" Value = "2021/12/31" ListPath = "---------------------------"> <Property Display = "作成者" Value = "▲▲" ListPath = "---------------------------"> <Property Display = "更新日時" Value = "2022/2/1" ListPath = "---------------------------"> <Property Display = ............ <Property Display = ........... ・ ・ ・ ・ ・ ◆やりたいこと③:②で取得したPathとProperty Displayを、出力ファイルの中に記載したいです。セルの区切りを「-」で表してみます。 1行目(ヘッダ):Path-文書名-作成日時-作成者-更新日時…… 2行目(文書①のデータ): 〇〇〇-2021/12/31-▲▲-2022/2/1… 3行目(文書②のデータ): …………… 4行目(文書③のデータ): …………… としたいです。 どうか有識者の方々、よろしくお願いいたします。

  • VBA ステータスバーの色

    いつからかわかりませんが、気づいたときにステータスバーの色が背景緑、前掲黒になり文字が見えにくくなりました。ググったところ同じような人がい、その方はOfficeテーマで白を選択したら直ったようです。 http://bubble2sei.blog69.fc2.com/blog-entry-4470.html?sp しかし、私の場合、白でも改善されずに困っています。 Statusbar=Falseとすれば元のグレー地に黒字に戻ります。 色の管理はどこで行っているのでしょうか?

  • サイトのVBAでのスクレイピングについて

    下記サイトを「VBA」でスクレイピングして、表示される動画の「タイトル一覧」を作成したいです。 ただ「Javascript」?で作成されているようで、表示されてる{内容}と{HTML}が一致せず、タイトルを取得できません。 しばらく前までは、単純に取得できてましたが、最近サイトの表示の仕方が変わってしまいました。 色々調べてやってみましたがダメです。 どなたか詳しい方、ご教示願います。 https://tver.jp/search

  • エクセルマクロ コピーして数値を置き換えてペースト

    下記内容のマクロをご教示願います。 ①「元データ」シートの最下行のデータをコピーして「変換データ」シートの最下行の次行 にペースト ②その際、以下のルールでペースト 0~9.9→1(データが0~9.9の場合、1に置き換える。以下同じ) 10.0~19.9→10 20.0~29.9→20 ・ ・ ・ 90.0~99.9→90 100.0以上→100 ※データは0.1刻み(小数点第1位が「0」の場合は整数で表記)

  • VBA 条件付き書式の書式(背景色)のみコピー

    エクセル2016のマクロで、別シートの条件付き書式の書式(背景色)のみコピーしてきたいです。 以下ではうまく動かすことができませんでした。 ws2.Range("A1:D10").DisplayFormat.Interior.ColorIndex = ws1.Range("A1:D10").DisplayFormat.Interior.ColorIndex 範囲の背景色のみコピー&ペーストという動作自体できないのでしょうか? また、for...nextで一セルずつ等他に方法があればお教えいただきたいです。 分かりづらい質問で申し訳ありません。。 質問の趣旨をおわかりいただけるでしょうか? 方法等調べましたがほしい情報が見当たらず、お知恵をお貸しください。 よろしくお願いいたします。

  • テキストファイルの中身を自動で置換したい

    VBA初心者なので説明不足な部分があると思いますがよろしくお願い致します 現在テキストファイルを開いてCtrl+Hで検索する文字列を検索 置換後の文字列を入力し置換しているのですが ファイル数が多く1つ1つ開いて置換するのがとても面倒です Excelで開けば良いのでは?と前にご意見をいただいたのですが Excelで開いてそこからの操作がよくわからず…。 できればボタン一つで自動的に置き換えられるようにしたいのですが どのようにコードを書けば良いのかまったくわかりません。 ・指定フォルダー内にある(1つまたは複数の)テキストファイル内の文字列をすべてセルに書き出す ・セルから特定の文字(例→【 ,F1 】)を検索し、特定の文字(例→【 ,A2 】)に置換する ・上書きして保存 という感じにしたいのですができますでしょうか? 無理そうでしたら大丈夫です 閲覧いただきありがとうございました

  • エクセルマクロ 別シートへ行列を入れ替えてコピペ

    下記内容のエクセルのマクロをご教示いただきたいと存じます。 ①「data」シートのB2からデータが入力されている最終行までをコピー(20行目までデータが入力されていたとすると、B2~B20をコピー。最終行は不定) ②「result」シートのE列のデータが入力されている最終行の次行に①のデータを行列を入れ替えてペースト(E列のデータが19行目まで入力されていたとすると、「E20」セルに①のデータ<この場合だと、「data」シートのB2~B20のデータ>を行列を入れ替えてペースト。「result」シートのE列の最終行は不定)

  • VBA Offsetで可視セルだけを移動

    VBA Offsetで可視セルだけを移動 エクセル2016のマクロで、現在アクティブのセルから3マス左に移動させたいです。 以下ですと、今いるG1セルからA1セルに移動したいです。 / A B C D E F G 1 表示 表示 非表示 表示 非表示 非表示 今いるセル 分かりづらい質問で申し訳ありません。。 質問の趣旨をおわかりいただけるでしょうか? 方法等調べましたがほしい情報が見当たらず、お知恵をお貸しください。 よろしくお願いいたします。

  • VBA 図形の移動をセル指定にしたい

    ワークシート上の図形を任意のセルで指定して その場所に移動させたいのですが 上手くいかないので質問します。 やりたいこと A1~A10セルに月・火・水・・・とランダムに 曜日が入っていて その中に、土という文字があれば その土とかかれたセルまで図形を持っていき さらにその図形をちょっと右にずらすという動きをさせたいです。 コードは下記を見て頂きたいのですが 図形の指定や図形をちょっと右にずらすのはできたのですが 土とかかれたセルの位置に持ってくるのがどうしてもできませんでした どうすれば指定した位置に図形を持ってこれるのでしょうか? すいませんがコードを記載してもらえると助かります。 回答よろしくお願いします。 Sub 図形移動() Dim a As Variant For a = 1To 10 If Cells(a, 1).Value = "土" Then ActiveSheet.Shapes("Rounded Rectangle 29").Select  Selection.ShapeRange.IncrementLeft 90 End If Next a End Sub

  • VBA if文とfor文の使用方法

    初歩的なことで質問します。 まず A1からA31セルに 連続した数値A1セル➡1、A2➡2・・・A31➡31と 数値が入力されております。 やりたいこと D1セルに適当な数字(例えば5)を入力しマクロを起動すると A5セルの5と書かれた数値を探し当て 隣のB5セルに別シートの数値を持ってくるといった処理ですが ここまではコードできています。 ここからわからないのですが さらに、D1セルに適当な数字(例えば5)を入力し マクロを起動すると A5セルの5と書かれた数値を探し当て すでに、B5セルに数字があれば処理しないといった内容を 追加したいのですが、やり方が分からないです。 途中からのコードですいません。 For i= 1 To 31 If range(”D1”).Value = .Cells(i, 1).Value Then ここまではできるのですが、その次の処理 すでに、B5セルに数字があれば処理しないといった処理 のif文がわかりません。 すいませんがコード記載してくれると助かります。 回答よろしくお願いします。

  • VBは多少間違ったコードでも動くって本当?

    最近C#を始めました。 そもそもC#ってどんな言語かネットで調べると、VBと比較すると難しいと書かれていました。 VBは多少の記述の間違いがあっても動くとありました。 プログラムって人間と違って融通が聞かないものの典型だと思っていたのに、記述の間違いがあっても動くってどういうこと?と疑問に思い質問させていただきました。 どなたか少し具体的に教えていただくことが可能であればお願いいたします。 具体的が無理ならイメージでも構いません。

  • フォルダ内にあるテキストファイル複数行転記について

    Excel VBAにて、フォルダ内のテキストファイルの複数行をExcelに転記するにはどうしたら良いでしょうか。 WEBサイトで似たようなものがありましたが、このマクロは2行目のみの転記です。 実際は14、18、28、32行目を転記したいです。 +αで条件を追加すると以下のようになります。 ①フォルダ内には100件近くのテキストファイルがあり、全て順番に処理をしていく ②抽出したい行にはタブで数字が5つほど並んでいます。(画像の用な感じです。) ③28、32行目は転記しデータを区切った後、左側2つの数字は削除したいです。(全てのテキストファイルに適用) ④特に空白行は作らず、下に追加していく。(A1から開始) ⑤シートを新しく追加する。 Excelはo365を使用しています。 参考にしたマクロは以下のものです。 初心者の為、すみませんが教えてください。よろしくお願いします。 ******************************************** '指定フォルダの全テキストの任意行を取得 Sub GetAllTextData() 'フォルダ指定用のダイアログを表示します With Application.FileDialog(msoFileDialogFolderPicker) 'カレントディレクトリを指定します .InitialFileName = ThisWorkbook.Path '設定しなかったら終了します If .Show = False Then Exit Sub '設定したフォルダを表示します Dim Fname Fname = .SelectedItems(1) End With '参照設定 Dim FSO As Object, Folder As Variant, File As Variant Set FSO = CreateObject("Scripting.FileSystemObject") Dim FilePath As Variant ReDim FilePath(1 To 100) As Variant '指定フォルダ内の.txtファイルを探索します i = 0 For Each File In FSO.GetFolder(Fname).Files If InStr(File.Name, ".txt") > 0 Then i = i + 1 FilePath(i) = File.Path 'ファイルのフルパスを取得 End If Next '配列の大きさは状況に応じ変更してください Dim Hozon, GetData As Variant ReDim GetData(1 To 100, 1 To 100) As Variant '全テキストファイルの任意行のデータを取得する m = 0 For k = 1 To UBound(FilePath, 1) 'テキストファイルが存在する場合に実行 If IsEmpty(FilePath(k)) = False Then '保存する配列を空にする ReDim Hozon(1 To 100, 1 To 100) As Variant 'テキストを開いて配列にデータを保存 Open FilePath(k) For Input As #1 i = 0 'テキストをすべて取得する Do Until EOF(1) Line Input #1, buf i = i + 1 'コンマ区切りでデータを取得する a = Split(buf, ",") For j = 0 To UBound(a, 1) Hozon(i, j + 1) = a(j) Next Loop Close #1 '▼取得したいデータに応じ変更してください '任意行の値を取得する i = 2 '2行目のデータを取得 m = m + 1 For j = 1 To UBound(Hozon, 2) GetData(m, j) = Hozon(i, j) Next End If Next 'データ貼り付け With ActiveSheet .Range(.Cells(2, 1), .Cells(2, 1).Offset(UBound(GetData, 1) - 1, UBound(GetData, 2) - 1)) = GetData End With End Sub (参考サイト:https://daitaideit.com/vba-get-alltext/)

    • 締切済み
    • noname#253191
    • Visual Basic
    • 回答数2
  • VBA 名前を付けて保存の方法について

    VBAのコードにて名前を付けて保存のやり方ができません。 現在開いているファイルを 名前を付けて保存したいのですが ファイルの指定方法が間違っているのか保存できません。 やりたいこと 現在開いているファイル内のシート(設定画面)の A1セルとA2セルの文字を "G:¥●エクセル¥ソフト¥計画"のドライブにて 保存する(A1セルとA2のセルの文字をくっつけて名前を付けて保存したい) 例:元のbook1のファイル名をA1セルとA2セルの文字をくっつけた   名前にしてから保存したい。 保存先のドライブの指定方法が分からなかったため マクロの記録にてそのドライブへ名前を付けて保存してみて ドライブの名前の指定をしました。(この方法も間違っていますか?) コードを下記に記載しています。 すいませんがうまく動くコードを記載してもらえると 助かります。 回答よろしくお願いします。 Sub macro1() Dim wb As Workbook Dim ws As Worksheet Dim hozonPath As String Dim FolName As String Dim FilName As String Set wb = ThisWorkbook Set ws = Worksheets("設定画面") hozonPath = "G:¥●エクセル¥ソフト¥計画" FolName = ws.Range("A1").Value FilName = ws.Range("A2").Value wb.SaveAs fileName:=hozonPath & FolName & "¥" & FilName End Sub

  • C#で動作するコードをvbに移植したら動作しません

    以下のサイトのC#のサンプルコードを、vbに移植しました。 しかし、正常動作しません。 C#で正常動作するのは、確認しました。 とても悩んでします。 どなたか、教えていただけませんか。 よろしくお願いします。 https://tzeditor.blogspot.com/2020/02/customtitlebar.html 不具合内容は、以下になります。 ・非クライアント領域が緑になりません。白色です。 ・ウィンドウリフレッシュ(※)が動作すると、白色も消え、  普通のフォームの外観になります。  ※他のウィンドウをアクティブにする。 Imports System.Windows.Forms Imports System.Runtime.InteropServices Public Class Form1 <StructLayout(Runtime.InteropServices.LayoutKind.Sequential)> Public Structure RECT Public Left As Int32 Public Top As Int32 Public Right As Int32 Public Bottom As Int32 Public ReadOnly Property Size As Size Get Return New Size(Right - Left, Bottom - Top) End Get End Property End Structure Declare Function GetWindowDC Lib "user32.dll" (ByVal hWnd As IntPtr) As IntPtr Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As IntPtr, ByVal hdc As IntPtr) As Int32 Declare Function GetWindowRect Lib "user32.dll" (ByVal hWnd As IntPtr, ByRef lpRect As RECT) As Boolean Declare Function CreateRectRgn Lib "gdi32.dll" (ByVal nLeftRect As Integer, ByVal nTopRect As Integer, ByVal nRightRect As Integer, ByVal nBottomRect As Integer) As IntPtr Declare Function DeleteObject Lib "gdi32.dll" (hObject As IntPtr) As Boolean <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> Protected Overrides Sub WndProc(ByRef m As Message) Const WM_ACTIVATE As Int32 = &H6 Const WM_NCPAINT As Int32 = &H85 Const WM_NCACTIVATE As Int32 = &H86 'Dim handle As HandleRef = New HandleRef(Nothing, m.HWnd) Select Case (m.Msg) Case WM_ACTIVATE Case WM_NCPAINT Case WM_NCACTIVATE '非クライアント領域を含むデバイスコンテキストを取得 Dim hdc As IntPtr = GetWindowDC(m.HWnd) Try ' デバイスコンテキストからGraphicsを生成 ' Regionはクリッピングに使用 Using g As Graphics = Graphics.FromHdc(hdc) Using rgn As Region = New Region() Dim rect As RECT ' ウィンドウサイズを取得 ' Sizeプロパティでは正確な値が取れないので GetWindowRect(m.HWnd, rect) ' コントロールの矩形 Dim clientRect As Rectangle = New Rectangle(Point.Empty, rect.Size) ' 境界線の太さ分収縮した矩形を描画対象から外す rgn.Union(clientRect) rgn.Xor(New Rectangle(8, 31, clientRect.Width - 16, clientRect.Height - 39)) g.Clip = rgn ' タイトルバー領域の塗りつぶし g.FillRectangle(Brushes.Green, clientRect) g.FillEllipse(Brushes.Red, New Rectangle(200, 8, 20, 20)) ' WParamにはクリッピング領域のリージョンハンドルを設定 ' OSによる描画範囲を境界線の太さ分だけ収縮した矩形とする Dim wParam As IntPtr = CreateRectRgn(rect.Left + 8, rect.Top + 31, rect.Right - 8, rect.Bottom - 39) Dim m2 As Message = Message.Create(m.HWnd, m.Msg, wParam, m.LParam) MyBase.WndProc(m2) End Using End Using Catch ' 例外が発生したらOSに描画させる MyBase.WndProc(m) Finally '取得したデバイスコンテキストを解放 ReleaseDC(m.HWnd, hdc) End Try Return Case Else MyBase.WndProc(m) Return End Select End Sub End Class お手数をお掛けします。 よろしくお願いします。

  • VBA どうすればいいですか、、、

    発注、返品が出来るようなものを作っているのですが 発注、返品はそれぞれ各フォームがあり、各シートに転記されるようにしてあります。発注、返品それぞれ受注番号が自動でつくようにしてありますが、返品作業をするとがなぜか発注シートにも同じ受注番号だけ転記されてしまうような現象が起きています。(下記参照) '「受注データ」シートへの書き込み Dim tgtRow As Long tgtRow = getLastRow(S_Order) + 1 '最終行取得 Me.txb_odrId.Value = getNewId(S_Order) '新規受注IDの取得 With S_Order '「受注データ」シート .Cells(tgtRow, 1).Value = Me.txb_odrId.Value '受注ID .Cells(tgtRow, 2).Value = getWriteDate(Me.txb_date) '受注日 .Cells(tgtRow, 3).Value = Me.cmb_stfId.Value '担当ID End With '「発注依頼データ」シートへの書き込み tgtRow = Me.txb_tgtRow.Value '対象の行 S_Estimates1.Cells(tgtRow, 6).Value = Me.txb_odrId.Value '受注ID '「返品データ」シートへの書き込み tgtRow = Me.txb_tgtRow.Value '対象の行 S_Return1.Cells(tgtRow, 6).Value = Me.txb_odrId.Value '受注ID どこを直せばいいのでしょうか? どう説明すればいいか難しく分かりにくくてすみません。

  • VBA 他のブックから図形にマクロを登録するマクロ

    別のブックから複数あるブックを開いてボタンを作りマクロを登録し、保存して閉じるということを繰り返したいのですが、ボタンを作るところまではできたのですが、ボタンにマクロを登録する際に下記の="A.xlsm!マクロ名"の部分のAを変数もしくは"\\〇〇\" & .Cells(I, "B") & ".xlsm"のように変更したいのですが、できません。 ご教示頂ければと存じます。何卒宜しくお願い致します。 Sheets("〇〇").Shapes("Button 4").OnAction = "A.xlsm!マクロ名"

  • Excel VBAにて助けてほしいです。

    マクロ記述でグラフを挿入を記録したものを、VBAで実行すると 実行時エラー アプリケーション定義またはオブジェクト定義のエラーです。 となります。 Range("C3:O5").Select ActiveSheet.Shapes.AddChart2(201, -4111).Select ActiveChart.SetSourceData Source:=Range("決算!$C$3:$O$5") -4111が認識されないのかわかりません。 集合縦棒2つ 折れ線グラフ1つ 表及び記録されたコードの画像を添付します。 なんとか宜しくお願い致します。

  • エクセル vba アウトルックで自動メール送信

    vba勉強中です。 初心者のため質問の仕方に不備ありましたらご了承ください。 在庫管理をエクセルで行っています。 使用した日に使用数を入力し当月在庫を管理しているシートがあります。 I列の当月在庫がH列の管理値を下回ったらアウトルックで自動メール送信を考えています。 在庫管理したい品目は40個ほどあります(添付しているファイルは5個としています。) こちらのサイト(https://fastclassinfo.com/entry/vba_outlook_sendmail/)を参考にしていますが、管理値を下回ったらという部分が勉強不足で作成できません。 お手数をおかけしますがお分かりになられる方、よろしくお願い致します

  • ファイル名を変えず、特定の数字を先頭に持っていく

    タイトルがなにやらおかしな感じですみません。 ファイル名に【お客様番号_5500_名取】だったり 【名取 お客様番号 5500】というように名前がついているのですが 元々のファイル名を変えずに4桁(この場合5500)の数字を ファイル名の先頭に持って行くことはできますか? 例)【お客様番号_5500_名取】→【5500お客様番号_5500_名取】 【名取 お客様番号 5500】→【5500名取 お客様番号 5500】 「保管フォルダ」と名付けたフォルダにファイルは無数に入っています。 この4桁の数字は0001~9000番まであります。 名前の付け方を統一してもらえないため手動変更していたのですが ファイル数が多いためどうにか自動化できないかと思った次第です できればExcelで操作できると嬉しいです こういうのは基本できないよと言うことでしたら これまで通り手動変更していきますので大丈夫です どうぞよろしくお願い致します

    • ベストアンサー
    • noname#250437
    • Visual Basic
    • 回答数2
  • マクロを使って簡単にファイルをフォルダへ移したい

    質問するのは初めてなのでわかりづらかったらすみません 「管理フォルダ」の中にある「0123」がついたファイルを 同じく「0123」とついたフォルダへ自動で移動させる コードなどがあれば教えていただきたいです できればフォルダ数が何個も増やせられると嬉しいです フォルダ数が500個以上になることがあるので 拡張子は「.csv」「.txt」がメインです どうぞよろしくお願い致します

    • ベストアンサー
    • noname#250437
    • Visual Basic
    • 回答数7