Excel VBA質問箱 IV

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

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


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

【76106】Re:MsgBoxの位置
発言  独覚  - 14/9/26(金) 11:51 -

引用なし
パスワード
   ▼トキノハジメ さん:
APIを使えば可能のようですが面倒そうなのでユーザーフォームで自作してはどうでしょうか?

ユーザーフォームの「Initialize」イベントで

Private Sub UserForm_Initialize()
  Me.StartUpPosition = 0
  Me.Left = Application.Left + 100
  Me.Top = Application.Top + 50
End Sub
で表示位置を指定できます。
上記の場合だとEXCELのウィンドウの左から100、上から50の部分に表示されます。
「+ 100」「+ 50」部分を変更することで位置も指定できます。
・ツリー全体表示

【76105】MsgBoxの位置
質問  トキノハジメ  - 14/9/26(金) 11:07 -

引用なし
パスワード
   教えてください。

MsgBoxの表示位置は指定出来るのでしょうか。

抽出完了と出しているのですが、スクロールせずに上の方に出したいのですが

宜しくお願い致します。
・ツリー全体表示

【76104】Re:ファイル名に指定された文字が含まれ...
発言  kanabun  - 14/9/26(金) 1:16 -

引用なし
パスワード
   ▼ペンネーム船長 さん:
こんばんは〜

>try2が使いやすそうだったので、これを仕事用に変更し、実行してみたところ、望み通りの動作をしてくれました。
> 全てを理解出来ていませんが、多少の変更をして動かせるようになったのは、私にとっても喜びです。
判りやすさでは Try2() かもしれませんね。
ただ、あとで時間を測定したところ、 Try2が一番時間がかかったのも事実です。

>kanabunさんというニックネームは、もしかしたら、エクセルラウンジでもお世話になった方ではないかと思います。

ラウンジがあんな風になって、大勢の(ラウンジ常連の?)方が、ココや moug に避難
されています。どの板に行っても、同じHNで発言しましょう(^^)
・ツリー全体表示

【76103】Re:ファイル名に指定された文字が含まれ...
お礼  ペンネーム船長  - 14/9/26(金) 0:50 -

引用なし
パスワード
   ▼kanabun さんへ:
kanabunさん有難う御座いました。
やりたい事が予想以上に(私にとって)高度な内容だったので、驚いています。
やはり、お手伝いいただかなければ自分では到底作れませんでした。
try2が使いやすそうだったので、これを仕事用に変更し、実行してみたところ、望み通りの動作をしてくれました。本当に感謝いたします。全てを理解出来ていませんが、多少の変更をして動かせるようになったのは、私にとっても喜びです。
kanabunさんというニックネームは、もしかしたら、エクセルラウンジでもお世話になった方ではないかと思います。ひと違いであったら、スミマセン。いずれにしても、今後とも宜しくお願いいたします。
・ツリー全体表示

【76102】Re:シート上の図形の再描写
発言  独覚  - 14/9/25(木) 16:14 -

引用なし
パスワード
   ▼ど素人 さん:
>しかし矢印1本でテストした際、2本描かれるようになってしまい、調べたところ
>>>Set wk_中身 = ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height)
>で1本目
>
>>>wk_中身.Line.BeginArrowheadStyle = 中身.Line.BeginArrowheadStyle
>で2本目が描かれ
>
>>>wk_中身.Line.EndArrowheadStyle = 中身.Line.EndArrowheadStyle
>がどうやら2本目に対して実行されているようです。

これに関しては
>>ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select
>>If 中身.Line.BeginArrowheadStyle = msoArrowheadTriangle Then
>>  Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadTriangle
>> End If
>>If 中身.Line.EndArrowheadStyle = msoArrowheadTriangle Then
>>  Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
>>End If
>部分を
>>  Dim wk_中身 As Variant
>を追加したうえで
>>Set wk_中身 = ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height)
>>wk_中身.Line.BeginArrowheadStyle = 中身.Line.BeginArrowheadStyle
>>wk_中身.Line.EndArrowheadStyle = 中身.Line.EndArrowheadStyle
>としてはどうでしょうか?
で、置き換え前に含めて、置き換え後に無くすことで
>ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select
を削除することを示したつもりでした。
なので
>ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select
を削除してください。

あと、向きに関してはこちらでもわからず、さらに矢印が斜めになっている場合
右下へ向かう矢印だとそのまま再描画できますが右上へ向かう矢印だと
右下へ向かう矢印として描画してしまうようです。

で、いくつか試してみて
ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height)
部分で「left」が開始X座標、topが開始Y座標、widthが終了X座標、heightが
終了Y座標になるためleftよりwidthが大きければ右向き、leftがwidthより
大きければ左向きの矢印に、topとheightも同じようになるようです。

けれども既に入力されている図形から始点座標、終点座標を求める方法は
わかりませんでした。
(現在のプログラムでは始点・終点ではなく左上、右下の座標を求めているため
向きが逆になったりしてるようです)

お役にたてなくてすみません。
・ツリー全体表示

【76101】Re:シート上の図形の再描写
発言  ど素人  - 14/9/25(木) 15:27 -

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

返信して下さりありがとうございます。
>まず、
>>ActiveSheet.Shapes.AddConnector(left, top, width, Height).Select
>は
>>ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select
>のミスでしょうか?

ミスです。抜けてしまったようです。申し訳ございません。


>矢印にも種類があるので
 取り込む図形をおおよそ持っており、矢印については三角矢印だけでしたのでこうしてしまいました。
おっしゃると通りに書き換えると確かに矢印の形は反映されました。

しかし矢印1本でテストした際、2本描かれるようになってしまい、調べたところ
>>Set wk_中身 = ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height)
で1本目

>>wk_中身.Line.BeginArrowheadStyle = 中身.Line.BeginArrowheadStyle
で2本目が描かれ

>>wk_中身.Line.EndArrowheadStyle = 中身.Line.EndArrowheadStyle
がどうやら2本目に対して実行されているようです。

 また
←ーーーーー● (右側が始点)
と描いていたものが

描かれる矢印の2本目で
●ーーーーー→
となってしまいます。
 これらの解決方法をいろいろと探ってみたのですが見つけることができませんでした。
もしご存知でしたら教えてくださると大変助かります。

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

以下にソースコードを示します。

Sub 要素書き出し3_Case()

  Dim 要素数 As Integer
  Dim 中身 As Variant
  Dim left As String
  Dim top As String
  Dim width As String
  Dim Height As String
  Dim obj As String
 

  要素数 = 1
    For Each 中身 In ActiveSheet.Shapes


      '--------------------プロパティー表示-----------------------'
         Cells(要素数 + 2, 1) = 中身.Name
         Cells(要素数 + 2, 2).Value = 中身.AutoShapeType

  
      Select Case True
'==================コネクター================================================================
  
           Case 中身.Connector
        '--------------------プロパティー取得-----------------------'
            obj = 中身.Type
            left = 中身.left
            top = 中身.top
            width = 中身.width + 中身.left
            Height = 中身.Height + 中身.top


             If 中身.Line.BeginArrowheadStyle = msoArrowheadTriangle Then
              
                  Cells(要素数 + 2, 7) = "msoArrowheadTriangle"
               End If
               
             If 中身.Line.EndArrowheadStyle = msoArrowheadTriangle Then
              
                  Cells(要素数 + 2, 8) = "msoArrowheadTriangle"
               End If
           '--------------------図形書きだし-----------------------'
         
               ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select


'-----------変更箇所----------          
                  Dim wk_中身 As Variant
                  
                    Set wk_中身 = ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height)

                      wk_中身.Line.BeginArrowheadStyle _
                       = 中身.Line.BeginArrowheadStyle

                      wk_中身.Line.EndArrowheadStyle _
                       = 中身.Line.EndArrowheadStyle


'----------変更箇所終わり-------
'================円============================================================================


'================その他========================================================================

         
            Case Else
            '--------------------プロパティー取得-----------------------'
                obj = 中身.Type
                left = 中身.left
                top = 中身.top
                width = 中身.width
                Height = 中身.Height


         End Select
  
  '--------------------プロパティー表示----------------------'
      Cells(要素数 + 2, 2).Value = obj
      Cells(要素数 + 2, 3).Value = left
      Cells(要素数 + 2, 4).Value = top
      Cells(要素数 + 2, 5).Value = width
      Cells(要素数 + 2, 6).Value = Height
     
      要素数 = 要素数 + 1
          
    Next


End Sub
・ツリー全体表示

【76100】Re:ファイル名に指定された文字が含まれ...
発言  kanabun  - 14/9/24(水) 16:56 -

引用なし
パスワード
   どうもFileCopy に時間がかかるようなので、
Windows APIの FileCopyOperation 使って Copyするサンプル書いてみました。
ウラ(画面の)でコピーしていると不安になるけど、コピーの情況が出るので、
同じ時間がかかっても安心できます(^^

'---------------------------------------------- 新しい標準モジュール
Option Explicit
Declare Function FileCopyOperation Lib "shell32.dll" Alias _
    "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
    
Type SHFILEOPSTRUCT
  hwnd As Long
  wFunc As Long
  pFrom As String
  pTo As String
  fFlags As Integer
  fAnyOperationsAborted As Boolean
  hNameMappings As Long
  lpszProgressTitle As String
End Type

Public Const FO_DELETE = &H3
Public Const FOF_ALLOWUNDO = &H40
Public Const FOF_NOCONFIRMATION = &H10
Public Const FO_COPY = &H2

Public Sub opFileCopy(SrcFile As String, DestFile As String)
  Dim FT As SHFILEOPSTRUCT
  Dim ok As Long
  
  FT.hwnd = Application.hwnd
  FT.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMATION
  FT.wFunc = FO_COPY
  FT.pFrom = SrcFile
  FT.pTo = DestFile
  
  ok = FileCopyOperation(FT)
    
End Sub

Private Function FileSearch(PathFilename As String, fData) As Long
  Dim tmpPath As String
  Dim sCmd As String
  Dim ok As Long
  
  tmpPath = Environ$("Temp") & "\Dir.tmp"  '一時ファイルパス
  sCmd = "DIR """ & PathFilename & """ /s /b > """ & tmpPath & """"
  ok = CreateObject("WScript.Shell") _
    .Run("%ComSpec% /C " & sCmd, 7, True) 'Dirコマンド実行

  If FileLen(tmpPath) > 0 Then
    Dim buf() As Byte
    Dim io As Integer
    io = FreeFile()
    Open tmpPath For Binary As io
     ReDim buf(1 To LOF(io))
     Get io, , buf
    Close io
    Kill tmpPath
    fData = Split(vbCrLf & StrConv(buf, vbUnicode), vbCrLf)
    FileSearch = UBound(fData) - 1
  End If
End Function

Sub Try3()
 Dim fData
 Dim i&, j&
 Dim n&
 Dim ss$
 Const TOP_FOLDER = "C:\Test1"
 Const COPY_TO = "C:\Test2"
 
 n = FileSearch(TOP_FOLDER & "\*a*.csv", fData)
 If n = 0 Then Exit Sub
 
 For i = 1 To n
   j = InStrRev(fData(i), "\")
   opFileCopy CStr(fData(i)), COPY_TO & Mid$(fData(i), j)
 Next

End Sub
・ツリー全体表示

【76099】Re:シート上の図形の再描写
発言  独覚  - 14/9/24(水) 16:45 -

引用なし
パスワード
   ▼ど素人 さん:
補足です。
線の太さや線の種類、矢印の大きさなど、ヘルプで対応するプロパティを調べて先に
示したのと同じ方法で値を入れてはどうでしょうか?
・ツリー全体表示

【76098】Re:シート上の図形の再描写
発言  独覚  - 14/9/24(水) 14:30 -

引用なし
パスワード
   ▼ど素人 さん:
>環境 excel 2013
私の環境は2010なので異なっていることがあるかもしれません。
で、
>・矢印の向きが再現されない
これについてだけ。

まず、
>ActiveSheet.Shapes.AddConnector(left, top, width, Height).Select

>ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select
のミスでしょうか?
2013でobj省略可能になったのかとも思いましたが

ht tp://msdn.microsoft.com/ja-jp/library/office/ff834664(v=office.15).aspx
では必須項目のようですが。

で、本題です。
その矢印は本当に「msoArrowheadTriangle」(三角矢印)でしょうか?
私のところでは何もしない状態では矢印は「msoArrowheadOpen」(開いた矢印)でした。

矢印にも種類があるので
>ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height).Select
>If 中身.Line.BeginArrowheadStyle = msoArrowheadTriangle Then
>  Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadTriangle
> End If
>If 中身.Line.EndArrowheadStyle = msoArrowheadTriangle Then
>  Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
>End If
部分を
>  Dim wk_中身 As Variant
を追加したうえで
>Set wk_中身 = ActiveSheet.Shapes.AddConnector(obj, left, top, width, Height)
>wk_中身.Line.BeginArrowheadStyle = 中身.Line.BeginArrowheadStyle
>wk_中身.Line.EndArrowheadStyle = 中身.Line.EndArrowheadStyle
としてはどうでしょうか?
・ツリー全体表示

【76097】Re:ファイル名に指定された文字が含まれ...
発言  kanabun  - 14/9/24(水) 14:26 -

引用なし
パスワード
   なんだか FSOで CopyFile すると思いっきり時間がかかるので、
Dirコマンドでファイル名取得して、
VBA組み込みの FileCopy ステートメントでCopyしたほうが多少早いかも?

Sub Try2()
 Dim fData
 Dim i&, j&
 Dim n&
 Dim ss$
 Const TOP_FOLDER = "C:\Test1"
 Const COPY_TO = "C:\Test2"
 
 n = FileSearch(TOP_FOLDER & "\*おはよう*.xlsx", fData)
 If n = 0 Then Exit Sub
 
 For i = 1 To n
   j = InStrRev(fData(i), "\")
   FileCopy fData(i), COPY_TO & Mid$(fData(i), j)
 Next

End Sub

Private Function FileSearch(PathFilename As String, fData) As Long
  Dim tmpPath As String
  Dim sCmd As String
  Dim ok As Long
  
  tmpPath = Environ$("Temp") & "\Dir.tmp"  '一時ファイルパス
  sCmd = "DIR """ & PathFilename & """ /s /b > """ & tmpPath & """"
  ok = CreateObject("WScript.Shell") _
    .Run("%ComSpec% /C " & sCmd, 7, True) 'Dirコマンド実行

  If FileLen(tmpPath) > 0 Then
    Dim buf() As Byte
    Dim io As Integer
    io = FreeFile()
    Open tmpPath For Binary As io
     ReDim buf(1 To LOF(io))
     Get io, , buf
    Close io
    Kill tmpPath
    fData = Split(vbCrLf & StrConv(buf, vbUnicode), vbCrLf)
    FileSearch = UBound(fData) - 1
  End If
End Function
・ツリー全体表示

【76096】シート上の図形の再描写
質問  ど素人  - 14/9/24(水) 13:06 -

引用なし
パスワード
   環境 excel 2013

 現在シート上に作成された図形や矢印などを取り込み、コピーではなく再描写させるプログラムを作成しております。

 しかし作成したのプログラムでは把握している範囲で次のような問題があります。
  ・矢印の向きが再現されない
  ・矢印の太さが設定していないにもかかわらず太くなることがある。
  ・曲線矢印が直線になってしまう
  ・円が描写されない
  ・グループ化されている場合、グループ化を手動で解除しなければ正しく取り込まれない
  
 これらを解決するにはどのようにしたらよいか、ご教授いただけないでしょうか?
 よろしくお願いいたします。


以下作成したプログラム

Sub 要素書き出し3_Case()

  Dim 要素数 As Integer
  Dim 中身 As Variant
  Dim left As Double
  Dim top As Double
  Dim width As Double
  Dim Height As String
  Dim obj As String
 

  要素数 = 1
    For Each 中身 In ActiveSheet.Shapes


      '--------------------プロパティー表示-----------------------'
         Cells(要素数 + 2, 1) = 中身.Name
         Cells(要素数 + 2, 2).Value = 中身.AutoShapeType

  
      Select Case True
'==================コネクター================================================================
  
           Case 中身.Connector
        '--------------------プロパティー取得-----------------------'
            obj = 中身.Type
            left = 中身.left
            top = 中身.top
            width = 中身.width + 中身.left
            Height = 中身.Height + 中身.top


             If 中身.Line.BeginArrowheadStyle = msoArrowheadTriangle Then
              
                  Cells(要素数 + 2, 7) = "msoArrowheadTriangle"
               End If
               
             If 中身.Line.EndArrowheadStyle = msoArrowheadTriangle Then
              
                  Cells(要素数 + 2, 8) = "msoArrowheadTriangle"
               End If
           '--------------------図形書きだし-----------------------'
         
               ActiveSheet.Shapes.AddConnector(left, top, width, Height).Select
           
    
             If 中身.Line.BeginArrowheadStyle = msoArrowheadTriangle Then
                 Selection.ShapeRange.Line.BeginArrowheadStyle = msoArrowheadTriangle
               End If
    
             If 中身.Line.EndArrowheadStyle = msoArrowheadTriangle Then
                 Selection.ShapeRange.Line.EndArrowheadStyle = msoArrowheadTriangle
               End If

'================円============================================================================


'================その他========================================================================

         
            Case Else
            '--------------------プロパティー取得-----------------------'
                obj = 中身.Type
                left = 中身.left
                top = 中身.top
                width = 中身.width
                Height = 中身.Height
                
            '--------------------図形書きだし-----------------------'
            ActiveSheet.Shapes.AddShape(obj, left, top, width, Height).Select
                Selection.ShapeRange.Name = "test 図形" & 要素数


         End Select
  
  '--------------------プロパティー表示----------------------'
      Cells(要素数 + 2, 2).Value = obj
      Cells(要素数 + 2, 3).Value = left
      Cells(要素数 + 2, 4).Value = top
      Cells(要素数 + 2, 5).Value = width
      Cells(要素数 + 2, 6).Value = Height
     
      要素数 = 要素数 + 1
          
    Next


End Sub
・ツリー全体表示

【76095】Re:ファイル名に指定された文字が含まれ...
発言  kanabun  - 14/9/24(水) 12:08 -

引用なし
パスワード
   ▼ペンネーム船長 さん:
こんにちは〜

>やりたい事:各フォルダー(『A』『B』『C』・・・)の中のファイル名に『こんにちは』の文字の入ったエクセルをCドライブ直下のtest2にコピーしたい。
>
>  FSO.CopyFile "C:\test1\(フォルダー名)\*こんにちは*.xlsx", "C:\test2\"

一例ですが、
あるフォルダのなかにあるSubFolder は
Dirコマンドのオプションを指定すると取得できます。


'関数 DirFolder を呼び出し、SubFolderを取得し、
' イミディエイト・ウィンドウに表示する例
Sub Try1a()
 Dim fData
 Dim i&
 Dim n&
 
 n = DirFolder("C:\Test1", fData)
 If n = 0 Then Exit Sub
 For i = 1 To n
   Debug.Print i; fData(i)
 Next
End Sub

'関数 DirFolder を呼び出し、SubFolderを取得し、
'各サブフォルダ内の対象ファイルをコピーする例
Sub Try1b()
 Dim fData
 Dim i&
 Dim n&
 Dim Fso As Object
 Const TOP_FOLDER = "C:\Test1"
 Const COPY_TO = "C:\Test2"
 
 n = DirFolder(TOP_FOLDER, fData)
 If n = 0 Then Exit Sub
 
 Set Fso = CreateObject("Scripting.FileSystemObject")
 For i = 1 To n
   On Error Resume Next
   Fso.CopyFile fData(i) & "\*こんにちは*.xlsx", COPY_TO
   If Err().Number Then
     Debug.Print fData(i), Err().Description
     Err().Clear
   End If
   On Error GoTo 0
 Next
End Sub


'Dirコマンドのオプション
' /a:D フォルダ(Directory) 属性のみ検索
' /s SubDirも検索
' /b ファイル名のみ表示
Private Function DirFolder(Pathname As String, fData) As Long
  Dim tmpPath As String
  Dim sCmd As String
  Dim ok As Long
  
  tmpPath = Environ$("Temp") & "\Dir.tmp"  '一時ファイルパス
  sCmd = "DIR """ & Pathname & """ /a:D /s /b > """ & tmpPath & """"
  ok = CreateObject("WScript.Shell") _
    .Run("%ComSpec% /C " & sCmd, 7, True) 'Dirコマンド実行

  If FileLen(tmpPath) > 0 Then
    Dim buf() As Byte
    Dim io As Integer
    io = FreeFile()
    Open tmpPath For Binary As io
     ReDim buf(1 To LOF(io))
     Get io, , buf
    Close io
    Kill tmpPath
    fData = Split(vbCrLf & StrConv(buf, vbUnicode), vbCrLf)
    DirFolder = UBound(fData) - 1
  Else
    DirFolder = 0
  End If
End Function
・ツリー全体表示

【76094】Re:こんな事ができるかどうかわからない...
発言  γ  - 14/9/23(火) 22:18 -

引用なし
パスワード
   コメントが付かないのは、
「従業員のスケジュール表」のレイアウトが明確に示されていないからでしょう。

# 誰も、そうした質問をしてまで、回答する気になれないのかもしれませんね。
# 回答したくなるような質問をされるのも戦略のうちですね。

・「太郎」という情報は、どのセルを結合したものに入っているのですか?
・値としては、太郎のままなのか、調整のために間に空白が入っているのか
というあたりを示すと、どなたかからコメントがもらえるかも知れません。
・ツリー全体表示

【76093】Re:ファイル名に指定された文字が含まれ...
発言  カリーニン  - 14/9/23(火) 18:18 -

引用なし
パスワード
   Dir関数については↓が参考になると思います。

ht tp://officetanaka.net/excel/vba/tips/tips69.htm
・ツリー全体表示

【76092】Re:ファイル名に指定された文字が含まれ...
発言  カリーニン  - 14/9/23(火) 18:14 -

引用なし
パスワード
   Dir関数
でファイル名に特定の文字列が含まれるファイルを抽出できます。

FSOでファイルコピーするのなら、↓が参考になると思います。
ht tp://www.officetanaka.net/excel/vba/filesystemobject/filesystemobject03.htm
・ツリー全体表示

【76091】ファイル名に指定された文字が含まれるフ...
質問  ペンネーム船長  - 14/9/23(火) 11:32 -

引用なし
パスワード
   【質問】
PC環境:win7、エクセル2010
環境:1.Cドライブ直下にtest1というフォルダーがあります。2.test1フォルダーの中に多数のフォルダーがあります。『A』フォルダー『B』フォルダー『C』フォルダー・・・3.各フォルダーの中に『おはよう.xlsx』『こんにちは1.xlsx』『こんにちは2.xlsx』『ようこそ5.xlsx』・・・など多数のファイルがあります。
やりたい事:各フォルダー(『A』『B』『C』・・・)の中のファイル名に『こんにちは』の文字の入ったエクセルをCドライブ直下のtest2にコピーしたい。

For Each 〜 In 〜
  Dim FSO As Object
  Set FSO = CreateObject("Scripting.FileSystemObject")
  FSO.CopyFile "C:\test1\(フォルダー名)\*こんにちは*.xlsx", "C:\test2\"
  Set FSO = Nothing
Next

行き詰ってます。宜しくお願いします
・ツリー全体表示

【76090】こんな事ができるかどうかわからないので...
質問  都築  - 14/9/22(月) 21:11 -

引用なし
パスワード
   なにぶんVBAの端っこをかじった事のあるだけのものです。

この度急きょ対応しなければならない問題が出てきてしまいました。
以下がその状況です。

あるブックにリストがあります。
A列に日付、B列に人名、C列にクライアント名、D列に実施場所が入っています。

  A   B   C       D
10/26  太郎  ◎◎工業   ここ
10/28  次郎  ▽▽株式会社 そこ
     ・
     ・
     ・

別のブックに従業員のスケジュールが入っているカレンダーがあります。
C4から○月1日、D4に○月2日、E4に○月3日と順番に日付が入っております。
ただ、1人あたりA列の18行を結合して人名を入れて、B列にいろいろな情報があります。

  A    B    C   D   E   F

          10/1  10/2 10/3  10/4

     クライアント
  太  売値
     実施場所
     回答

  郎


  次  クライアント
     売値
     実施場所
     回答
  郎


このような状況で、最初のリストの情報を下のリストに繁栄をさせたいです。
やりたい事としては以下の内容です。

・リストにある人名を結合したセルから検索

・その上で実施場所やクライアント名を入れていく

このような作業を行いたいのですが、できますでしょうか。また、できるのであればどのようなVBAになるのでしょうか。
例でも結構でございます。ご教授いただけましたらうれしいです。

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

【76089】Re:入力フォーム
お礼  勉強中  - 14/9/20(土) 21:08 -

引用なし
パスワード
   皆様,ご教示ありがとうございました。
おかげさまで,なんとかなりそうです。
大変参考になりました。
ありがとうございます。
・ツリー全体表示

【76088】Re:日付表示について
発言  γ  - 14/9/20(土) 10:55 -

引用なし
パスワード
   >正直今の私のレベルでは皆さんに教えて頂いた内容はついていけませんでした。

言っていただければ、いくらでも説明する用意はありますよ。

日付というものをExcelがどう管理しているか、が分かりにくいのでしょう。
特定の日(1900年1月1日だったか)を1とする連番で管理しています。

  d = DateSerial(Val(Mid$(s, 3)), Val(Left$(s, 2)), 1)
は、年、月、日をあたえて、その連番を返すものです。

   Format$(d, "dd-mmm-yy")
は、その連番数値をもとに、指定した形式の文字列に変換するものです。

dd,mmm,yyの意味は、Format関数のヘルプ(の「関連項目」にある、
「日付/時刻表示書式指定文字 (Format 関数)」)
を調べて見て下さい。

まずは、こうしたあたりを確認していくとよいと思います。
・ツリー全体表示

【76087】Re:日付表示について
お礼  素人です  - 14/9/20(土) 10:30 -

引用なし
パスワード
   大変失礼いたしました。
正直今の私のレベルでは皆さんに教えて頂いた内容はついていけませんでした。
しかし、いずれにしても色々とありがとうございます。
何とかレベルUPしてお教え頂いた事を活かせるようにしたいと思います。
・ツリー全体表示

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