Excel VBA質問箱 IV

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

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


30 / 3841 ページ ←次へ | 前へ→

【81888】VBAの#NAME?エラー
質問  ノボル E-MAIL  - 21/12/2(木) 19:57 -

引用なし
パスワード
   vbaでウインドウス10で以前のverでは値になっていたが今#NAME?と出る
数値にするには
VBAはFunctionで計算している
・ツリー全体表示

【81887】ユーザーフォームのツールボックスについ...
質問  トム  - 21/10/27(水) 9:10 -

引用なし
パスワード
   ユーザーフォームをshowで表示させた後に、
特定の動作でそのユーザーフォームにコントロールを配置する、
ツールボックスのウィンドウが表示される現象が発生します。

具体的には一度showで表示しているユーザーフォームですが、
特定のボタンを押した時に一部コントロールをremoveします
そのタイミングでツールボックスが表示されてしまいます。

これは正常な動作なのでしょうか?

もし正常でしたらその表示されたツールボックスをvbaで非表示にする方法は、
有りますでしょうか?
・ツリー全体表示

【81886】WMIでのログ取得について
質問  ピノ  - 21/10/13(水) 16:29 -

引用なし
パスワード
   初めて利用させていただきます。

出勤管理表にイベントログのログイン、ログオフ時間を取得したいと考えています。

仕事の出勤管理表で利用したいと思っているので、1か月分のログが欲しいです。

現在下記サイトを参考にしながら取得を試みました。

https//www.kurumico.com/exel−vbaーtoolーeventlog/1459/

自分なりにいろいろ触りながら試すうちに、イベントタイプやイベントコードなどの指定はわかるようになりましたが、時間指定や日付指定はよくわかりませんでした。

もしわかる方がいらっしゃいましたら、お手数ですが、ご教授もしくは回答をいただけると幸いです。

よろしくお願いします
・ツリー全体表示

【81885】Re:コントロールの存在確認
お礼  トム  - 21/10/5(火) 6:44 -

引用なし
パスワード
   ▼山内 さん:
ありがとうございます。
詰まってた箇所を進めることが出来ました。
・ツリー全体表示

【81884】Re:コントロールの存在確認
回答  山内  - 21/10/4(月) 13:14 -

引用なし
パスワード
   On Error Resume Nextのあとにコントロールを呼び出したとき
Err.Numberが0以外になる場合存在しません
・ツリー全体表示

【81883】解決しました。
発言  ken  - 21/10/3(日) 12:08 -

引用なし
パスワード
   wb2.SaveAs f_name, FileFormat:=xlCSV
にしたら読み込めました。
・ツリー全体表示

【81882】csvへの保存について
質問  ken  - 21/10/3(日) 10:14 -

引用なし
パスワード
   いつもお世話になっております。
vba勉強中です。
何方かご教授ください。

ワークシートをcsv形式で保存したいのですが
他のアプリケーションで読み込もうとしても読み込めません。
一度開いて再度csv(カンマ区切り)を指定して保存すると読み込めます。
保存の仕方が間違っているのでしょうか?

Sub test()
 Dim wb As Workbook, wb2 As Workbook
 Dim ws1 As Worksheet, ws2 As Worksheet
 Dim f_name As String
  Set wb = ThisWorkbook
  Set ws1 = wb.ActiveSheet
  ws1.Copy
  Set wb2 = ActiveWorkbook
  Set ws2 = wb2.ActiveSheet
  f_name = "C:\Users\デスクトップ\" & ws2.Name & ".csv"

  If Dir(f_name) <> "" Then
    Application.DisplayAlerts = False
    wb2.SaveAs f_name
    Application.DisplayAlerts = True
  Else
    wb2.SaveAs f_name
  End If
  wb2.Close
End Sub
・ツリー全体表示

【81881】コントロールの存在確認
質問  トム  - 21/10/1(金) 18:29 -

引用なし
パスワード
   こんにちは。
動的にコントロールを作成し、
削除ボタンでその作成したコントロールをremoveを使って、
コントロールの一部を削除しました。

その後その削除したコントロールの存在確認というのは、
どの様に行えば出来るのでしょうか?
・ツリー全体表示

【81880】Re:VBAで複数の条件を指定して特定の文字...
お礼  初心者です  - 21/9/26(日) 20:27 -

引用なし
パスワード
   山内さま

返信が遅くなり申し訳ありません。
アドバイスを元に解決することができました。
教えて頂き本当にありがとうございます。
・ツリー全体表示

【81879】Re:VBAで複数の条件を指定して特定の文字...
回答  山内  - 21/9/24(金) 9:43 -

引用なし
パスワード
   ワイルドカードを使う場合Like演算子を使うといいです
Debug.Print "うえ" Like "う?" '条件に合っているため戻り値はTrue
・ツリー全体表示

【81878】VBAで複数の条件を指定して特定の文字列...
質問  初心者です  - 21/9/22(水) 15:39 -

引用なし
パスワード
   ランダムな文字列のうちAXXAXAといった特定の並びの文字列を抽出する時、
Xの部分がY、Zなど指定した文字の条件でも文字列を抽出できるコードをどなたか教えていただけないでしょうか。(例:AXXAXAだけでなくAYZAXAといった文字列でも抽出可能)
オートフィルター、ワイルドカード、論理演算子を組合わせると可能な気がするのですがVBAを学び初めて日が浅くまだどのように組み合わせてコードを立てればよいかどうしてもわかりません。
・ツリー全体表示

【81877】検索した薬剤をアクティブセルへ反映させ...
質問  mu  - 21/9/22(水) 8:46 -

引用なし
パスワード
   お世話になります。


薬剤DBタブを作成して
A検索文字 B単位(錠、カプセルなど)Cジェネリック D先発薬剤

フォームにテキストBoxと検索ボタンを作成

候補を3行listboxで作成し
下2行にジェネリック、先発を反映させるところまではうまく行きました。

*************************************************************************
'検索を実行します。部分一致検索を行っています。
 Private Sub cmdSearch_Click()

  Dim lastRow As Long
  Dim myData, myData2(), myData3(), myData4(), myno
  Dim i As Long, j As Long, cn As Long

  ' If M_serch.Value = "" ThenEnd

  '検索するデータを配列 myData に格納しています。
  With Worksheets("薬剤DB50音順")
     lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
    myData = .Range(.Cells(1, 1), .Cells(lastRow, 4)).Value
  End With

  '配列 myData の中で検索で一致したデータを配列 myData2 に格納しています。
  ReDim myData2(1 To lastRow, 1 To 3)
  ReDim myData3(1 To lastRow, 1 To 2)
  ReDim myData4(1 To lastRow, 1 To 2)
  
  For i = LBound(myData) To UBound(myData)
    If myData(i, 1) Like "*" & M_serch.Value & "*" Then
      cn = cn + 1
      myData2(cn, 1) = myData(i, 1)
      myData2(cn, 2) = myData(i, 3)
      myData2(cn, 3) = myData(i, 2)

      
      If myData(i, 3) <> "" Then
        cn2 = cn2 + 1
        myData3(cn2, 1) = myData(i, 3)
        myData3(cn2, 2) = myData(i, 2)
        
      If myData(i, 3) <> "" Then
        cn2 = cn2 + 1
        myData4(cn2, 1) = myData(i, 4)
        myData4(cn2, 2) = myData(i, 2)
        
        
      End If
    End If
   End If
  Next i

  '検索で一致したデータを先発リストボックスに表示します。
  With lstResult_M1
    .ColumnCount = 3
    .ColumnWidths = "140;105;20"
    .List = myData2
  End With

  '検索で一致したデータを後発リストボックスに表示します。
  With lstResult_new
    .ColumnCount = 2
    .ColumnWidths = "180;20"
    .List = myData3
  End With
    
  '検索で一致したデータを後発リストボックスに表示します。
  With lstResult_new2
    .ColumnCount = 2
    .ColumnWidths = "180;20"
    .List = myData4
    
  End With

End Sub

*********************************************************************


伺いたいのは
ここで反映した候補の薬剤を
1.リスト選択、ただしジェネリックか先発どちらかしか選べない

2.フォームには数値入力のTextBoxと実行ボタンがあり

選択したセルがアクティブセルで K4だとした場合(別タブになります。)

K4セルを捕まえて実行ボタンを押すと

K4(薬剤名)K5(数値 1.2など)K6(単位 錠、カプセルなど)

と繁栄をさせたいのですが

そもそもアクティブセルを反映させる段階でうまく行きません

****************************************


Private Sub cmdMakeStatus_Click()
  Dim lRow As Long, i As Long
  Dim ListNo As Long
    ListNo = lstResult_new.ListIndex
    If ListNo < 0 Then
      MsgBox "いずれかの行を選択してください"
      Exit Sub
    End If
    With Worksheets("処 方 録")
      lRow = .Range("B" & Rows.Count).End(xlUp).Row
    'For i = 0 To 2
    .ActiveCell.Value = lstResult_new.List(ListNo, i)
    'Next i
    .ActiveCell.Offset(0, 2).Value = lstResult_new.List(ListNo, i + 1)

    End With
    Ent_figure01.Value = ""
    lstResult_new.TopIndex = ListNo
End Sub


**************************************************************

正直どこで間違えているかも分からない状況です。

ご教示よろしくお願い致します。
・ツリー全体表示

【81876】Re:1つのエクセルを複数のbookシートに...
回答  山内  - 21/9/21(火) 16:01 -

引用なし
パスワード
   とりあずやることは
1.元データを部署別に分ける
2.新しいフォルダを作る
3.1で分けたデータで新しいブックを作り保存する
です。
それぞれ検索すればいくらでもコードが出てくると思います。
・ツリー全体表示

【81875】1つのエクセルを複数のbookシートに分割
質問  ピエトロ  - 21/9/20(月) 16:57 -

引用なし
パスワード
   エクセルVBA初心者です。
課題として、

  A    B   C D       A
1 aさん 営業部 男 住所1  1 ボタン
2 bさん 人事部 女 住所2
3 cさん 営業部 男 住所3
4 dさん 技術部 男 住所4
5 eさん 経理部 男 住所4

シート データ集約       シート データ分割実行

実施したいこと
1.シート(データ集約)にあるデータを
2.シート(データ分割実行)内にあるボタンをクリックする。
3.ボタンをクリックすると、新しくフォルダをつくる
4.フォルダ内に、営業部、人事部、技術部、技術部、その他部署のエクセルbookが出来ている
5.営業部のbookを開くと
1 aさん 営業部 男 住所1  
2 cさん 営業部 男 住所3
が表示されている。
※、人事部、技術部、技術部でも同様です。

VBAプログラムとして
ボタン_Click()
からの書き方がわかりません
お知恵をお借りできないでしょうか。
お願いいたします。
・ツリー全体表示

【81874】1つのエクセルを複数のbookシートに分割
質問  ピエトロ  - 21/9/20(月) 16:57 -

引用なし
パスワード
   エクセルVBA初心者です。
課題として、

  A    B   C D       A
1 aさん 営業部 男 住所1  1 ボタン
2 bさん 人事部 女 住所2
3 cさん 営業部 男 住所3
4 dさん 技術部 男 住所4
5 eさん 経理部 男 住所4

シート データ集約       シート データ分割実行

実施したいこと
1.シート(データ集約)にあるデータを
2.シート(データ分割実行)内にあるボタンをクリックする。
3.ボタンをクリックすると、新しくフォルダをつくる
4.フォルダ内に、営業部、人事部、技術部、技術部、その他部署のエクセルbookが出来ている
5.営業部のbookを開くと
1 aさん 営業部 男 住所1  
2 cさん 営業部 男 住所3
が表示されている。
※、人事部、技術部、技術部でも同様です。

VBAプログラムとして
ボタン_Click()
からの書き方がわかりません
お知恵をお借りできないでしょうか。
・ツリー全体表示

【81873】google apiを使用して2点間の最短距離を...
質問  サリー  - 21/9/12(日) 23:30 -

引用なし
パスワード
   こんばんは。
google apiを使用して2点間の距離(高速道路利用しない、最短距離)を求めたいです。
高速道路利用しないに関しては解決したのですが、最短距離を出すことに苦戦しています。
最短距離を求めるオブジェクト定数optimizeWaypointsということは分かっているのですが
どこに組み込めば良いかアドバイス頂ければ幸いです。
何卒宜しくお願い致します。

【ソースコード】

Function DGMAP(origin As String, destination As String, distance As Boolean, Optional avoidHighways As Boolean = True) As String

Dim sXMLURL As String
  
sXMLURL = "maps.googleapis.com/maps/api/directions/xml?origin=" & origin & "&destination=" & destination & "&sensor=false&key=AIzaSyBd__DDpyRIC7TJHlPFE-ZoLO4blhMxOOs"

  Dim objXMLHTTP As MSXML2.ServerXMLHTTP60

  Set objXMLHTTP = New MSXML2.ServerXMLHTTP60

  With objXMLHTTP

    .Open "GET", sXMLURL, False

    .setRequestHeader "Content-Type", "application/x-www-form-URLEncoded"

    .Send

  End With


  'Debug.Print objXMLHTTP.ResponseText


  Dim domResponse As DOMDocument60

  Set domResponse = New DOMDocument60

  domResponse.LoadXML objXMLHTTP.ResponseText

  Dim ixnStatus

  Set ixnStatus = domResponse.SelectSingleNode("//status")


  If ixnStatus.Text = "OK" Then

    Dim ixnDistance, ixnDuration

    Set ixnDistance = domResponse.SelectSingleNode("/DirectionsResponse/route/leg/distance/text")

    Set ixnDuration = domResponse.SelectSingleNode("/DirectionsResponse/route/leg/duration/text")

  End If

  If IsEmpty(ixnDistance) Then

    DGMAP = "Empty"

    Exit Function

  End If

 '距離(True) または時間(False)

  If distance = True Then

    DGMAP = Left(ixnDistance.Text, InStr(1, ixnDistance.Text, " ") - 1)

  Else

    DGMAP = ixnDuration.Text

  End If

  Set domResponse = Nothing

  Set objXMLHTTP = Nothing

End Function
・ツリー全体表示

【81872】Re:Longより大きい整数
質問  りった  - 21/9/1(水) 16:32 -

引用なし
パスワード
   ▼山内 さん:
>LongLong (LongLong 整数) 変数は、-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 の範囲の符号付き 64 ビット (8 バイト) の数値として格納されます。
>MicrosoftDocsより

回答ありがとうございます。
LongLongが使えないのでよくよく調べたところ、Officeが32bitでした。
32bitの場合は、Currencyを使うしかないのでしょうか?
・ツリー全体表示

【81871】Re:Longより大きい整数
回答  山内  - 21/8/31(火) 13:02 -

引用なし
パスワード
   LongLong (LongLong 整数) 変数は、-9,223,372,036,854,775,808 から 9,223,372,036,854,775,807 の範囲の符号付き 64 ビット (8 バイト) の数値として格納されます。
MicrosoftDocsより
・ツリー全体表示

【81870】Longより大きい整数
質問  りった  - 21/8/28(土) 1:48 -

引用なし
パスワード
   100億位(10ギガ位)の整数の計算をしたいです。
何型を使えば良いでしょうか?

背景:
・ファイルサーバーの使用状況を調べるツールを作成中です。(サイズ、タイムスタンプ,…)
・Longを使ったらフォルダサイズを格納時にオーバーフローしました。(フォルダサイズは70GB位)
・Currencyが使えそうな気がしますが、通貨じゃないものに使ってなにがしか困った挙動をしないか心配。(大きい整数を使う場合のセオリーだったりしますか?)
・Microsoft 365 Apps for enterprise / Windows8(64ビット)
・LongPtrは下記でオーバーフローした
  Dim iLongPtr As LongPt
  iLongPtr = 2147483648#
・ツリー全体表示

【81869】Re:環境依存文字があると関数が動かない...
お礼  すず  - 21/8/23(月) 15:18 -

引用なし
パスワード
   とりあえず、うまくできないのでこの件は終了します。
アドバイスありがとうございました。
・ツリー全体表示

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