Excel VBA質問箱 IV

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

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


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

【80503】Re:フォントの反映【エクセルからアウト...
発言  マナ  - 19/2/22(金) 22:47 -

引用なし
パスワード
   ▼aymie さん:

アウトルックのことは全くわかりませんので
検索してみました。

ht tps://www.ka-net.org/blog/?p=8550
・ツリー全体表示

【80502】フォントの反映【エクセルからアウトルッ...
質問  aymie  - 19/2/22(金) 9:53 -

引用なし
パスワード
   初めて、投稿させて頂きます。
最近VBAを始めて、メールの一括送信のマクロを作成しています。

色々な方からの投稿を参考にしながら、無事にエクセルからアウトルックへの連動と一括送信ができるようになりました。
エクセルにメール本文のブックと、配信先名簿のブックの2ブックからアウトルックへ連携させるような内容です。

ただ、エクセルでフォント(太字、下線、文字色など)をいじっても、アウトルックの本文にまではそのフォントが反映されません。

エクセルやアウトルック側への設定で調整ができるのか、マクロに入力していくしかないのか…

初歩的な質問だったら申し訳ありませんが、ご教授頂けますと幸いです。
よろしくお願いします。
・ツリー全体表示

【80501】Re:シート名と同じ文字列のセル行位置を...
発言  γ  - 19/2/21(木) 22:35 -

引用なし
パスワード
   再度書きます。
>引数の数もそれでよいのか確認してください。
・ツリー全体表示

【80500】Re:シート名と同じ文字列のセル行位置を...
発言  狛ちゃん E-MAIL  - 19/2/21(木) 22:26 -

引用なし
パスワード
   ▼γ さん:
>Matchはワークシート関数ですよね。
>でしたら、
>k = WorksheetFunction.Match(・・・
>とするのでは?
>引数の数もそれでよいのか確認してください。

早速の回答有難うございます。
引数の数が一致していませんとのエラーメッセージが表示されました。
・ツリー全体表示

【80499】Re:シート名と同じ文字列のセル行位置を...
発言  γ  - 19/2/21(木) 21:37 -

引用なし
パスワード
   Matchはワークシート関数ですよね。
でしたら、
k = WorksheetFunction.Match(・・・
とするのでは?
引数の数もそれでよいのか確認してください。
・ツリー全体表示

【80498】シート名と同じ文字列のセル行位置を取得...
質問  狛ちゃん E-MAIL  - 19/2/21(木) 20:29 -

引用なし
パスワード
     With Activesheet
     sheetName = ActiveSheet.Name
     k = Worksheet.Match(sheetName, activesheet.Range("Q8:Q14"), False, 0)
  
  End With

と記述しましたら、オブジェクトが有りませんとのエラーメッセージがでます。
この場合のオブジェクトの意味が理解できていません。
アドバイスお願いします。
・ツリー全体表示

【80497】Re:検索フォームの動作について
お礼  tarutaru  - 19/2/21(木) 12:09 -

引用なし
パスワード
   マナ様

はい。マナ様のおっしゃるとおりの事でした。
アドバイスを基に色々と試したところ、私の思っている動作が出来ました。

ありがとうございました。

VBAを少しずつ勉強していきたいと思います。

今後ともよろしくお願いいたします。
・ツリー全体表示

【80496】Re:検索フォームの動作について
発言  マナ  - 19/2/20(水) 19:29 -

引用なし
パスワード
   ▼tarutaru さん:

>ただ、入社年月日を入力すると今現在の年月日から、逆算して勤務年数(年カ月)が算出できる計算式を一覧表のセルに入れているのですが(在職者の場合退職していないので現在進行形でよい)、もし退職年月日を入力した時点で、その時点の勤務年数(年カ月)に変更(止める)させるためには、セル自体にそのような計算式があるのか?あるいはIf構文等でプロシージャを「sheet」に組むのか?かがわかりません。

質問が理解できていませんが、
こんな感じの数式にするだけでは?

=IF(退職年月日="",TODAY()-入社年月日,退職年月日-入社年月日)
・ツリー全体表示

【80495】Re:検索フォームの動作について
お礼  tarutaru  - 19/2/19(火) 22:54 -

引用なし
パスワード
   マナ様

アドバイスいただいた、「2)リストボックスから丸ごと転記する方法」で、自分の思っていたフォームの動作ができました。
大変ありがとうございました。助かりました!

ただ、入社年月日を入力すると今現在の年月日から、逆算して勤務年数(年カ月)が算出できる計算式を一覧表のセルに入れているのですが(在職者の場合退職していないので現在進行形でよい)、もし退職年月日を入力した時点で、その時点の勤務年数(年カ月)に変更(止める)させるためには、セル自体にそのような計算式があるのか?あるいはIf構文等でプロシージャを「sheet」に組むのか?かがわかりません。
申し訳ありませんが、ヒントをいただけないでしょうか?

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

【80494】Re:分類が変わる毎に規則正しく空白行を...
回答  ピンク  - 19/2/19(火) 10:32 -

引用なし
パスワード
   参考に
Sub Test()
  Dim LastRow As Long, i As Long
  
  LastRow = Cells(Rows.Count, "A").End(xlUp).Row
  For i = LastRow To 2 Step -1
    If Cells(i, "A").Value <> Cells(i - 1, "A").Value And _
        Cells(i, "B").Value <> Cells(i - 1, "B").Value Then
      Cells(i, "A").Resize(2).EntireRow.Insert Shift:=xlDown
    ElseIf Cells(i, "A").Value <> Cells(i - 1, "A").Value Or _
        Cells(i, "B").Value <> Cells(i - 1, "B").Value Then
      Cells(i, "A").EntireRow.Insert Shift:=xlDown
    End If
  Next
End Sub
・ツリー全体表示

【80493】Re:カレンダーに予定を自動入力したい
発言  マナ  - 19/2/18(月) 17:46 -

引用なし
パスワード
   ▼VBA初心者 さん:

申し訳ありませんが1月だけのコードで議論させていただけませんか。
・ツリー全体表示

【80492】Re:オートフィルターの可変できる絞り込み
お礼  VBA勉強始めました  - 19/2/18(月) 16:05 -

引用なし
パスワード
   ピンク様

ありがとうございます!
教えて頂いたコードで無事動きました!

もっと良い参考書を購入してさらに勉強したいと思います。
本当にありがとうございました。


▼ピンク さん:
>>InputBoxで入力した数値以外にフィルターをかけたい場合は
>>Criteria1:="<>Autofilter"だとエラーになるのですが
>>どのようにすれば○以外でフィルターができますか?
>
>n値、以外は
>Dim n As Long
>n = InputBox("抽出したい大分類コードを入力してください。")
>ActiveSheet.Range("A1").AutoFilter _
>  Field:=9, Criteria1:="<>" & n
・ツリー全体表示

【80491】Re:オートフィルターの可変できる絞り込み
発言  ピンク  - 19/2/18(月) 14:28 -

引用なし
パスワード
   >InputBoxで入力した数値以外にフィルターをかけたい場合は
>Criteria1:="<>Autofilter"だとエラーになるのですが
>どのようにすれば○以外でフィルターができますか?

n値、以外は
Dim n As Long
n = InputBox("抽出したい大分類コードを入力してください。")
ActiveSheet.Range("A1").AutoFilter _
  Field:=9, Criteria1:="<>" & n
・ツリー全体表示

【80490】Re:オートフィルターの可変できる絞り込み
発言  VBA勉強始めました  - 19/2/18(月) 14:13 -

引用なし
パスワード
   ピンク様

色々教えて頂き、ありがとうございます。
私の参考書では「変数はあとで見てもわかるように」とあったので
分かりやすくしたのですが好ましくないのですね・・・
すぐにご教授頂いた通り、修正しました。


▼ピンク さん:
>>  Autofilter = InputBox("抽出したい大分類コードを入力してください。")
>
>Autofilter を変数に使用するのは好ましくないので
>
>Dim n As Long
>n = InputBox("抽出したい大分類コードを入力してください。")
>ActiveSheet.Range("A1").Autofilter _
>  Field:=9, Criteria1:=n
・ツリー全体表示

【80489】Re:オートフィルターの可変できる絞り込み
質問  VBA勉強始めました  - 19/2/18(月) 14:11 -

引用なし
パスワード
   ピンク様

ご回答いただき、ありがとうございます!
もしよろしければ、もう一つ教えて頂きたいのですが
InputBoxで入力した数値以外にフィルターをかけたい場合は
Criteria1:="<>Autofilter"だとエラーになるのですが
どのようにすれば○以外でフィルターができますか?

よろしくお願い致します。


▼ピンク さん:
>  Dim Autofilter As Long
>  Autofilter = InputBox("抽出したい大分類コードを入力してください。")
>  ActiveSheet.Range("A1").Autofilter _
>      Field:=9, Criteria1:=Autofilter
・ツリー全体表示

【80488】Re:オートフィルターの可変できる絞り込み
発言  ピンク  - 19/2/18(月) 14:11 -

引用なし
パスワード
   >  Autofilter = InputBox("抽出したい大分類コードを入力してください。")

Autofilter を変数に使用するのは好ましくないので

Dim n As Long
n = InputBox("抽出したい大分類コードを入力してください。")
ActiveSheet.Range("A1").Autofilter _
  Field:=9, Criteria1:=n
・ツリー全体表示

【80487】Re:カレンダーに予定を自動入力したい
回答  VBA初心者  - 19/2/18(月) 14:09 -

引用なし
パスワード
   ▼マナ さん:
>▼VBA初心者 さん:
>
>>カレンダーには
>>エクセルの年カレンダー(1つのタブで1か月)というものを使っております。
>>表示されている日数は日付のみです。
>
>
>γさんの回答のように、Day(d)で検索しなくて大丈夫?
>本当に、シリアル値 CLng(d)で検索ができていますか。

Day(d)で検索するマクロを考えてみました。
ですが、これだとエラーは出ないものの正しく入力されませんでした。
なぜ入力されないか教えていただきたいです。

Sub カレンダー入力新規2()

  Dim ws1     As Worksheet
  Dim lastRow   As Long
  Dim rngCalendar As Range
  Dim rngFound   As Range
  Dim rngFirstcell As Range
  
  Dim A      As Long
  
  Dim h      As Long
  Dim i      As String
  Dim j      As Long
  Dim k      As Long
  Dim l      As String
  
  Set ws1 = Worksheets("Sheet1")
  lastRow = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row
  
  For A = 1 To lastRow
  
     h = ws1.Cells(A, 1).Value '日付け
     i = ws1.Cells(A, 2).Value 'スケジュール
     j = Month(d)        '日付から月を抜く
     k = Day(d)         '日付から日を抜く
   
     
  If j = 1 Then
   Set rngCalendar = Worksheets(1 & " " & "月").Range("B3:H13")
  ElseIf j = 2 Then
   Set rngCalendar = Worksheets(2 & " " & "月").Range("B3:H13")
  ElseIf j = 3 Then
   Set rngCalendar = Worksheets(3 & " " & "月").Range("B3:H13")
  ElseIf j = 4 Then
   Set rngCalendar = Worksheets(4 & " " & "月").Range("B3:H13")
  ElseIf j = 5 Then
   Set rngCalendar = Worksheets(5 & " " & "月").Range("B3:H13")
  ElseIf j = 6 Then
   Set rngCalendar = Worksheets(6 & " " & "月").Range("B3:H13")
  ElseIf j = 7 Then
   Set rngCalendar = Worksheets(7 & " " & "月").Range("B3:H13")
  ElseIf j = 8 Then
   Set rngCalendar = Worksheets(8 & " " & "月").Range("B3:H13")
  ElseIf j = 9 Then
   Set rngCalendar = Worksheets(9 & " " & "月").Range("B3:H13")
  ElseIf j = 10 Then
   Set rngCalendar = Worksheets(10 & " " & "月").Range("B3:H13")
  ElseIf j = 11 Then
   Set rngCalendar = Worksheets(11 & " " & "月").Range("B3:H13")
  ElseIf j = 12 Then
   Set rngCalendar = Worksheets(12 & " " & "月").Range("B3:H13")
  End If


  Set rngFound = rngCalendar.Find(k, After:=rngCalendar(1), _
      LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, _
      MatchCase:=False, MatchByte:=False, SearchFormat:=False)
  
    
    If k = rngFound.Value Then
      Call setSchedule(rngFound.Offset(1, 0), l)
    
    Else
      Set rngFound = rngCalendar.FindNext(rngFound)
      
      If Not rngFound Is Nothing Then
        
        If d = rngFound.Value Then
          Call setSchedule(rngFound.Offset(1, 0), l)
   
        End If
      
      End If
    
    End If
   
  Next A
   
End Sub

Function setSchedule(r As Range, l As String)
  If r.Value = "" Then
    r.Value = l
  Else
    r.Value = r.Value & vbLf & l
  End If
End Function


End Function
・ツリー全体表示

【80486】Re:オートフィルターの可変できる絞り込み
回答  ピンク  - 19/2/18(月) 14:06 -

引用なし
パスワード
     Dim Autofilter As Long
  Autofilter = InputBox("抽出したい大分類コードを入力してください。")
  ActiveSheet.Range("A1").Autofilter _
      Field:=9, Criteria1:=Autofilter
・ツリー全体表示

【80485】オートフィルターの可変できる絞り込み
質問  VBA勉強始めました  - 19/2/18(月) 12:16 -

引用なし
パスワード
   初めまして。

仕事の効率化の為にとVBAの参考書を購入し
Webなども参考にしつつ、見よう見まねで作成しているのですが
どうしてもこれが分からず先に進みません・・・。


A列〜BD列まで、行数は月によって増減しますが、
それぞれに文字列ないし数値が入ったファイルを使用しております。
このファイルのI列には1〜15までの数値が入力されており、
I列にオートフィルターを設定し、任意の数値でフィルターをかけたいと考えており
下記のようなコマンドを作ったのですがオートフィルターまではうまくいけるのですが
I列のフィルターがInputBoxで入力した数値以外での絞り込みになりません・・・。

フィルターの中身を確認すると数値フィルターの値がAutofilterのなっています。
Criteria1:="<>Autofilter"←ここが間違っているのだとは分かるのですが
参考書にも書いてなくてどう直せば良いのかが分かりません・・・。

皆様のお知恵を貸していただきたく、投稿させて頂きました。
どうか、よろしくお願い致します。


Sub Autofilter()

Dim Autofilter As Long
Autofilter = InputBox("抽出したい大分類コードを入力してください。")
Selection.Autofilter
ActiveSheet.Range("A1").Autofilter _
      Field:=9, Criteria1:="<>Autofilter"
End Sub
・ツリー全体表示

【80484】Re:時間の足し算を行うと、yyyy/mm/dd h...
お礼  amatsuno  - 19/2/18(月) 8:07 -

引用なし
パスワード
   ▼マナ さん:
>▼amatsubo さん:
>
>正しく集計できているのでしょうか

すいません。どうやっても同じ結果しか出ないので、
もう一度確認してみます
・ツリー全体表示

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