Excel VBA質問箱 IV

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

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


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

【80643】打刻からの時間加算
質問  はじめまして  - 19/3/26(火) 14:06 -

引用なし
パスワード
   初めまして、VBAの質問をさせていただきます。
タイムテーブルを作るのにVBAで打刻のマクロを作りましたが、
打刻後の時間延長(時間加算)方法がわからないので質問させていただきます。
下記マクロで任意のセルに「Ctrl+:」で現在時刻をセルに入れたのち
その時刻に時間を足し算したいと思っております。

例) 13:00(打刻時間)+2:00(固定時間)でセルに「15:00」となる。
マクロを実行毎に+2:00される。

ご回答の程、よろしくお願いいたします。


Sub 打刻()
'
' 打刻 Macro
'

'
    SendKeys "^:"
    SendKeys "{Enter}"
End Sub
Sub クリア()
'
' クリア Macro
'

'
SendKeys "{Delete}"
End Sub
・ツリー全体表示

【80642】Re:フォルダからファイルを選択後別フォ...
質問  katsura E-MAIL  - 19/3/26(火) 11:27 -

引用なし
パスワード
   ▼マナ さん:
>▼katsura さん:
>
>>クリックしたエクセルをコピーする書き方がわかりません。
>
>その前に、↓のファイルをコピーするマクロは理解できたのですか?
>
>>>ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm

以下のコードでコピー元とコピー先を指定するコピーの仕方はわかりましたが、選択したフォルダのパスとファイル名をマクロで取得したものをコピー元に当て込むことができません。
FileCopy source, destination
つまりパスを直接書き込まずに、自由にフォルダから選択したエクセルファイルをコピー元としてマクロに当て込むようにしたいのですがエラーになってしまします。
どのようにしたらできるのでしょうか。
・ツリー全体表示

【80641】Re:マクロのコピーペストがうまく行かない
発言  マナ  - 19/3/25(月) 21:43 -

引用なし
パスワード
   ▼モリチャン さん:

あら、今回も、マルチポストでしたか。
こちらは、必要なさそうですね。

本サイトの基本方針
ht tp://www.vbalab.net/bbspolicy.html

別のサイト(掲示板)にまったく同じ目的の投稿をすることを、一般に「マルチポスト」といいます。当質問箱では、マルチポストは原則認めています。つまり、ほかのサイトで質問したことをこのサイトで質問してもかまわないということです。

しかし、もしマルチポストをするのなら、可能な限り「○○にも同じ質問を出しました」ということを宣言してください。そして、仮に他のサイトで解決したのなら、ここにも必ずその顛末を書いてください。質問しっぱなし、というのはモラルに反します。「解決したからいいや」というのではありません。

また、マルチポストを明示的に禁止しているサイトとのマルチポストをしてはいけません。
・ツリー全体表示

【80640】Re:マクロのコピーペストがうまく行かない
発言  マナ  - 19/3/25(月) 21:25 -

引用なし
パスワード
   ▼モリチャン さん:

前回の質問は、解決したのでしょうか?
今回も、同じことをお願いします。

まずは、インデントから
ht tp://kabu-macro.com/word/sa-so/zisage.html

次に、変数宣言
ht tp://officetanaka.net/excel/vba/beginner/11.htm

質問は、それからで。
・ツリー全体表示

【80639】マクロのコピーペストがうまく行かない
質問  モリチャン E-MAIL  - 19/3/25(月) 20:54 -

引用なし
パスワード
   電気試験の規格条件を、EXCELデータとし、試験項目の番号の規格条件を信頼性試験のグラフブックの規格表に貼り付け、EXCELでグラフ作成をします。コンセプトは、フォーム上で規格表データを読み込み、グラフ表に規格を貼り付ける事です。フォームのコードは、完全の様で、gfilename,dfilenameはテキストボックスに入っています。
モジュールのロジックは良いと思うのですが、モジュール部をF8で動かせる解析すると、変数Iは、1までしか動かず、D,Data(dfile)に、データが入りません。モジュール部で問題ないでしょか。
1)kは動くが、iが、Len関数が効いていないのか、1以外変化しない。iに対するLenの使い方はこれで良いのでしょうか?
(Cells find以下が動いていなくて、Copyができないようなので)
2)dfilename(1)が入っていないがDataに読み込ませる方法は無いでしょうか?TESTNOも変数宣言してみました。
3)D=Val(mid)関数だが、これで動くのでしょうか?
規格転送は、オブジェクト名です。
Sub dialog_show()
規格転送.規格ファイル = ""
規格転送.送られ側 = ""
規格転送.Show
If Button = "ok" Then Call main
End Sub

Sub main()
Dim sinn
Dim i
Dim k
Dim Data
Dim D
Workbooks.Open Filename:=gfilename(1)
sinn = ActiveWorkbook.Name
Sheets("規格値").Select
Range("E10").Select
ActiveCell.Offset(0, 0).Range(Cells(1, 1), Cells(15, 7)).Select
Selection.ClearContents

For k = 1 To 7
For i = 1 To i = Len(TESTNO) / 2 'Test項目数

Workbooks.Open Filename:=dfilename(1)
Data = ActiveWorkbook.Name
Windows(sinn).Activate
Range("E10").Select
ActiveCell.Offset(k - 1, i - 1).Select
Windows(Data).Activate
D = Val(Mid(TESTNO, (i - 1) * 2 + 1, 2)) 'Test項目の番号
Cells.Find(What:="D", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
ActiveCell.Offset(k - 1, 0).Copy
Windows(sinn).Activate
Selection.PasteSpecial Paste:=xlFormula
Next i

Next k

ActiveWindow.Close
If k = 7 Then
Application.ScreenUpdating = True
MsgBox ("終了しました")
End If

End Sub
・ツリー全体表示

【80638】Re:フォルダからファイルを選択後別フォ...
発言  マナ  - 19/3/25(月) 18:42 -

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

>クリックしたエクセルをコピーする書き方がわかりません。

その前に、↓のファイルをコピーするマクロは理解できたのですか?

>>ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm
・ツリー全体表示

【80637】Re:フォルダからファイルを選択後別フォ...
質問  katsura E-MAIL  - 19/3/25(月) 16:22 -

引用なし
パスワード
   ▼マナ さん:
>▼katsura さん:
>
>filecopyとgetopenfilenameを使うとよいです。
>
>ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm
>ht tps://www.moug.net/tech/exvba/0060013.html

ありがとうございます。
ファイルを選択するところまでは作ったのですが、クリックしたエクセルをコピーする書き方がわかりません。
なにか見本があったらお願いしたいのですがよろしくお願いいたします。

Sub フォルダを開きファイル選択をしてコピーする()

  Dim OpenFileName As String, FileName As String, Path As String
  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?")
  If OpenFileName <> "False" Then
  
    FileName = OpenFileName '←←←【パスとファイル名取得】
    
  Else
    MsgBox "キャンセルされました"
  End If
  

End Sub
・ツリー全体表示

【80636】Re:型が一致しないがわかりません
お礼  ゆうすけ  - 19/3/25(月) 14:29 -

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

返答が遅くなってしまい申し訳ございません。
マナさんのおかげで無事完成致しました!!
本当にありがとうございました。
・ツリー全体表示

【80635】Re:型が一致しないがわかりません
発言  マナ  - 19/3/22(金) 17:52 -

引用なし
パスワード
   ▼ゆうすけ さん:

>E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。


間違えました。

If c.Offset(, 5).Value = 1 Then

にしてください。
そして、この行の意味をよく考えてください。
結果がでればよいというものではありません。
理解できていれば、ご自分で修正できます。

さらに、↓は、必要なくなります。

>上から順番に表示させるために下記のマクロを作成しました。
・ツリー全体表示

【80634】Re:フォルダからファイルを選択後別フォ...
発言  マナ  - 19/3/22(金) 17:39 -

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

filecopyとgetopenfilenameを使うとよいです。

ht tp://officetanaka.net/excel/vba/statement/FileCopy.htm
ht tps://www.moug.net/tech/exvba/0060013.html
・ツリー全体表示

【80633】フォルダからファイルを選択後別フォルダ...
質問  katsura E-MAIL  - 19/3/22(金) 15:28 -

引用なし
パスワード
   エクセルファイルを選択するウィンドウを開き、コピーするエクセルファイルを選択した後に別フォルダへ同じ名前で保存するマクロを作成したいのですが、どうやったらよいか教えて頂けたらよろしくお願いいたします。
・ツリー全体表示

【80632】Re:型が一致しないがわかりません
回答  ピンク  - 19/3/22(金) 15:09 -

引用なし
パスワード
   ▼ゆうすけ さん:
>Sub Tumeru()
>Dim i As Integer, j As Integer
>j = 1
>For i = 24 To 46
>If (Range("E" & i).Rows <> "") Then
>j = j + 1
>Range("E" & i).Copy Range("E" & j)
>Range("E" & i) = ""
>End If
>Next i
>End Sub

Sub Tumeru2()
  Dim v As Variant, c As Range, i As Long
  
  With Range("E24:E46")
    ReDim v(1 To .Count)
    For Each c In .Cells
      If c.Value <> "" Then
        i = i + 1
        v(i) = c.Value
      End If
    Next
    .Value = Application.Transpose(v)
  End With
End Sub
・ツリー全体表示

【80631】Re:型が一致しないがわかりません
発言  ゆうすけ  - 19/3/22(金) 12:09 -

引用なし
パスワード
   ▼マナさん

下記補足です。
ブランクのセルを詰めて順番に表記する際に
ブランクのセルを削除して詰めることはやりたくありません・・・。
というのも、E24:E49に商品分類1、E56:E59に商品分類2を入力したいため
商品分類1のブランクのセルを削除してしまうと、商品分類2のセルが移動してしまうためです。


>▼マナ さん:
>
>ご回答ありがとうございます!
>マナさんのおかげで、無事転記に成功することが出来ました!
>
>しかし、転記は出来たのですが今度はセルを上から詰めて表示することに苦戦しています。
>
>・ワークシート"1"のリストは
>K13、K14、K16が商品分類1
>K15が商品分類2となっています。
>
>こちらで作った転記のマクロを実行すると
>ワークシート"2"の
>E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。
>E24:E49の間にブランクを詰めて分類1の商品名を表記させたいです。
>
>上から順番に表示させるために下記のマクロを作成しました。
>ブランクを詰めることは出来ましたが、E2セルから並んでしまい
>どこを変更したらよいのか修正点が分からず悩んでおります。
>ご依頼ばかりで申し訳ございませんが、マナさんのお力をお借り出来たらとても嬉しいです。
> 
>Sub Tumeru()
>Dim i As Integer, j As Integer
>j = 1
>For i = 24 To 46
>If (Range("E" & i).Rows <> "") Then
>j = j + 1
>Range("E" & i).Copy Range("E" & j)
>Range("E" & i) = ""
>End If
>Next i
>End Sub
・ツリー全体表示

【80630】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/22(金) 10:42 -

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

ご回答ありがとうございます!
マナさんのおかげで、無事転記に成功することが出来ました!

しかし、転記は出来たのですが今度はセルを上から詰めて表示することに苦戦しています。

・ワークシート"1"のリストは
K13、K14、K16が商品分類1
K15が商品分類2となっています。

こちらで作った転記のマクロを実行すると
ワークシート"2"の
E24、E25、E27に商品分類1が転記され、E26がブランクという状態になっています。
E24:E49の間にブランクを詰めて分類1の商品名を表記させたいです。

上から順番に表示させるために下記のマクロを作成しました。
ブランクを詰めることは出来ましたが、E2セルから並んでしまい
どこを変更したらよいのか修正点が分からず悩んでおります。
ご依頼ばかりで申し訳ございませんが、マナさんのお力をお借り出来たらとても嬉しいです。
 
Sub Tumeru()
Dim i As Integer, j As Integer
j = 1
For i = 24 To 46
If (Range("E" & i).Rows <> "") Then
j = j + 1
Range("E" & i).Copy Range("E" & j)
Range("E" & i) = ""
End If
Next i
End Sub
・ツリー全体表示

【80629】Re:型が一致しないがわかりません
発言  マナ  - 19/3/21(木) 13:39 -

引用なし
パスワード
   ▼ゆうすけ さん:

では、こんな感じでできそうです。

Option Explicit

Sub test()
  Dim r1 As Range
  Dim c As Range
  Dim n1 As Long
  
  Set r1 = Worksheets("2").Range("E24")

  For Each c In Worksheets("1").Range("K14:K41")
    If c.Value = "" Then Exit For
    
    If c.Offset(, 4).Value = 1 Then
      r1.Offset(n1).Value = c.Value
      n1 = n1 + 1
     Else
      '商品分類2の場合
     End If
  Next
 
End Sub
・ツリー全体表示

【80628】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/21(木) 13:17 -

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

はい!下記のとおりです。
>
>1)C13:C14で商品を選ぶ
>2)K13:K40に英語の商品名を表示(Vlookup)
>3)P13:P40に商品分類の数字(1か2)を表示(Vlookup)
>

マクロに転記したいのはK列の英語の商品名です。
・ツリー全体表示

【80627】Re:型が一致しないがわかりません
発言  マナ  - 19/3/21(木) 13:07 -

引用なし
パスワード
   ▼ゆうすけ さん:

1)C13:C14で商品を選ぶ
2)K13:K40に英語の商品名を表示(Vlookup)
3)P13:P40に商品分類の数字(1か2)を表示(Vlookup)

ということですか

で、マクロでE24に転記したいのは、
C列の商品名ですか、K列の英語の商品名ですか。
・ツリー全体表示

【80626】Re:型が一致しないがわかりません
回答  ゆうすけ  - 19/3/21(木) 12:48 -

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

Worksheet"1"のK13:K40に商品名が入っています。
同じWorksheet"1"のP13:P40に商品分類の数字(1か2)が入っています。

別のシート"Sheet1"がマスタリストのような役目をしています。
C13:C40に日本語の商品名が入力されており、そこで商品名を選ぶと
K13:40にVLOOKUPで"Sheet1"から引っ張ってきた英語の商品名が入力されるようになっています。
商品分類も同様で、C13:C14で商品を選ぶとVLOOKUPで"Sheet1"のリストから引っ張ってくるように設定されています。
・ツリー全体表示

【80625】Re:【関数】名前の抽出について
発言  マナ  - 19/3/20(水) 18:50 -

引用なし
パスワード
   ▼かず さん:
>VBAではないですが、関数にて名前の抽出方法を教えて頂きたいです。

板違いとわかっていて、他でなく、ここで質問する理由は?
・ツリー全体表示

【80624】Re:型が一致しないがわかりません
発言  マナ  - 19/3/20(水) 17:43 -

引用なし
パスワード
   ▼ゆうすけ さん:

>やりたいことは
>・商品分類が1と2の2種類に分かれている商品リストがあります。
>・分類1の商品はE24のセルから、分類2の商品はE56のセルからリストアップされるように転記したいです。

商品リストのレイアウト(どこに、どんなデータがあるのか)を
セル番地がわかるように、説明してください。
・ツリー全体表示

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