Excel VBA質問箱 IV

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

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


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

【77378】Re:番号合わせ
発言  カエムワセト  - 15/8/13(木) 22:20 -

引用なし
パスワード
   VBAでワークシート関数をセルに記述するのはマクロの自動記録
が参考になると思います。

ワークシート関数を使わないで行いたいのでしたら、
Findメソッドで行けると思います。

ht tp://excelvba.pc-users.net/fol7/7_1.html
・ツリー全体表示

【77377】Re:番号合わせ
質問  トキノハジメ  - 15/8/13(木) 21:23 -

引用なし
パスワード
   ▼カエムワセト さん:
ありがとうございます。

VBAでの開設はないのでしょうか。
どうかよろしくおねがいいたします。
・ツリー全体表示

【77376】Re:番号合わせ
発言  カエムワセト  - 15/8/13(木) 20:10 -

引用なし
パスワード
   横から失礼します。

HLOOKUP関数の解説HPです。

ht tp://www3.tokai.or.jp/excel/kansu/hlookup.htm
ht tp://excel.onushi.com/function/hlookup.htm
ht tp://www.kenzo30.com/ex_kisotyu/ex_ks_tyukyu9_9_4.htm
・ツリー全体表示

【77375】Re:番号合わせ
質問  トキノハジメ  - 15/8/13(木) 19:25 -

引用なし
パスワード
   ▼γ さん:
>HLOOKUP関数というものがあるので、これを使ってください。
>趣旨はVLOOKUP関数と同様です。
>ヘルプを参照してみて下さい。

お返事有難う御座います。
色々調べましたが、良いサンプルが見つかりませんので
少し解説を頂けないでしょうか
私のやりたいことは答えが下記のようにしたいのですが

  A  B  C  D  E  F  G  H  I  J  K
1 
2 番号   10  4  1  6  9  8  2  5  7  3
3 点数 93 88 93 96 99 94 92 97 89 95
4
5 番号 1  2  3  4  5  6  7  8  9 10
6 点数 93 92 95 88 97 96 89 94 99 93

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

【77374】Re:番号合わせ
発言  γ  - 15/8/12(水) 14:25 -

引用なし
パスワード
   HLOOKUP関数というものがあるので、これを使ってください。
趣旨はVLOOKUP関数と同様です。
ヘルプを参照してみて下さい。
・ツリー全体表示

【77373】番号合わせ
質問  トキノハジメ  - 15/8/12(水) 14:11 -

引用なし
パスワード
   いつもお世話になります。
一つ教えて下さい。

   A  B  C  D  E  F  G  H  I  J  K
1
2 番号 10  4  1  6  9  8  2  5  7  3
3
4
5 番号  1  2  3  4  5  6  7  8  9 10
6 点数 93 92 95 88 97 96 89 94 99 93

A5,A6列に別シートからデータを以降してきて、A2 の
列の番号の下にA5列の番号の下のA6列の点数をA3列に抽出
して記入したいのですが何を使えば良いのか教えて下さい。
・ツリー全体表示

【77372】Re:ダブルクリックのマクロ
お礼  コーヒー  - 15/8/11(火) 17:23 -

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

ありがとうございました!!
詳しい説明をいただき、助かりました。


>▼コーヒー さん:
>
>こんにちは
>
>      Selection.Offset(0, -5).Select
>
>こうしても Targetは変わりません。I100 等のままです。
>ですから
>      Target.Value = Date
>これで、せっかく 星を付けたセルに日付が書きこまれます。
>
>やるなら Selection.Value = Date でしょうけど、このためにわざわざセルを選択する必要はありません。
>
>CHK_FLG の設定と判定も(アップされたコードだけからいえば)不要だと思います。
>
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>
>  If Intersect(Target, Range("I3:I3000")) Is Nothing Then Exit Sub
>
>  If Target.Value = "" Then
>    Target.Value = "★"
>    Target.Offset(, -5).Value = Date
>    Cancel = True
>  End If
>  
>End Sub
>
>
>こうしても
>>こんにちは。以前こちらでお世話になったものです。
>>
>>下記のようにI列のセルをダブルクリックすると、★マークが付くようになっています。
>>それと同時に、同じ行の日付が記入されているD列に今日の日付に変わる設定したいです。
>>
>>やってみたのですが、I列に★がつく代わりに、日付が入ってしまします。
>>お手数ですが、ご教授をお願いいたします。
>>
>>(例)
>>D100:8/15 I100:空白
>>I100をダブルクリックすると
>>D100:8/11 I100:★
>>に変わるようにしたい
>>
>>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>>  Dim CHK_FLG  As Boolean
>> 
>>
>>CHK_FLG = True
>>  If Intersect(Target, Range("I3:I3000")) Is Nothing Then CHK_FLG = False
>> 
>>  If CHK_FLG Then
>>    If Target.Value = "" Then
>>      Target.Value = "★"
>>      Selection.Offset(0, -5).Select
>>      Target.Value = Date
>>      Cancel = True
>>    End If
>>    Exit Sub
>>  End If
>>    
>>End Sub
・ツリー全体表示

【77371】Re:ダブルクリックのマクロ
発言  β  - 15/8/11(火) 15:55 -

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

こんにちは

      Selection.Offset(0, -5).Select

こうしても Targetは変わりません。I100 等のままです。
ですから
      Target.Value = Date
これで、せっかく 星を付けたセルに日付が書きこまれます。

やるなら Selection.Value = Date でしょうけど、このためにわざわざセルを選択する必要はありません。

CHK_FLG の設定と判定も(アップされたコードだけからいえば)不要だと思います。

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

  If Intersect(Target, Range("I3:I3000")) Is Nothing Then Exit Sub

  If Target.Value = "" Then
    Target.Value = "★"
    Target.Offset(, -5).Value = Date
    Cancel = True
  End If
  
End Sub


こうしても
>こんにちは。以前こちらでお世話になったものです。
>
>下記のようにI列のセルをダブルクリックすると、★マークが付くようになっています。
>それと同時に、同じ行の日付が記入されているD列に今日の日付に変わる設定したいです。
>
>やってみたのですが、I列に★がつく代わりに、日付が入ってしまします。
>お手数ですが、ご教授をお願いいたします。
>
>(例)
>D100:8/15 I100:空白
>I100をダブルクリックすると
>D100:8/11 I100:★
>に変わるようにしたい
>
>Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
>  Dim CHK_FLG  As Boolean
> 
>
>CHK_FLG = True
>  If Intersect(Target, Range("I3:I3000")) Is Nothing Then CHK_FLG = False
> 
>  If CHK_FLG Then
>    If Target.Value = "" Then
>      Target.Value = "★"
>      Selection.Offset(0, -5).Select
>      Target.Value = Date
>      Cancel = True
>    End If
>    Exit Sub
>  End If
>    
>End Sub
・ツリー全体表示

【77370】ダブルクリックのマクロ
質問  コーヒー  - 15/8/11(火) 12:28 -

引用なし
パスワード
   こんにちは。以前こちらでお世話になったものです。

下記のようにI列のセルをダブルクリックすると、★マークが付くようになっています。
それと同時に、同じ行の日付が記入されているD列に今日の日付に変わる設定したいです。

やってみたのですが、I列に★がつく代わりに、日付が入ってしまします。
お手数ですが、ご教授をお願いいたします。

(例)
D100:8/15 I100:空白
I100をダブルクリックすると
D100:8/11 I100:★
に変わるようにしたい

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim CHK_FLG  As Boolean
 

CHK_FLG = True
  If Intersect(Target, Range("I3:I3000")) Is Nothing Then CHK_FLG = False
 
  If CHK_FLG Then
    If Target.Value = "" Then
      Target.Value = "★"
      Selection.Offset(0, -5).Select
      Target.Value = Date
      Cancel = True
    End If
    Exit Sub
  End If
    
End Sub
・ツリー全体表示

【77369】Re:CSV出力について
お礼  Masa  - 15/8/5(水) 18:05 -

引用なし
パスワード
   ウッシさん、kanabunさんありがとうございます。

ダブルクォーテーションを取りたくて、質問をさせて頂きました。
アドバイス頂いた内容を参考に、仕様の変更を含め、担当者と話を
したいと思います。

アドバイスを頂きありがとうございました。
・ツリー全体表示

【77368】Re:CSV出力について
回答  ウッシ  - 15/8/4(火) 8:04 -

引用なし
パスワード
   こんにちは

文字列としてフォーマットしてWriteするとダブルクォーテーションで
囲まれてしまうのが問題なのかと思い、一時シートを作成してそのシート
をcsvファイルとして保存すればいいかと思ったのですが、一時シートを
作成する事にどんな支障があるのでしょうか?

こちらで確認したケースではシート上の「2015/08/01」「100.00」という
表示形式のデータを保存すると
2015/08/01
100.00
となりましたけどダメでしょうか?
・ツリー全体表示

【77367】Re:CSV出力について
発言  kanabun  - 15/8/3(月) 20:09 -

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

>Formatを使用してとも考えたのですが、文字型となって
>しまうため、何か方法がないもかと質問を上げさせて
>頂いた次第です。
>
>やはり、数値のまま、0.00と出力するのは無理ですよね・・・。

でも、CSVはテキスト(文字列) ですよ

>  Dim Hiduke  As String '日付

これと同じように、
Formatかけて 文字列として保存すればいいだけだと思うのですが?

  Dim tanka As String
  Hiduke = Format$(Range("A1").Value, "yyyymmdd")
  Tanka = Format$(Val(Range("A2").Value), "#0.00")

  Write #1, Hiduke, Tanka
・ツリー全体表示

【77366】Re:CSV出力について
お礼  Masa  - 15/8/3(月) 18:39 -

引用なし
パスワード
   回答頂きありがとうございます。

別シートに出力して行う方法は、出来ない事情があり
Writeしています。
Formatを使用してとも考えたのですが、文字型となって
しまうため、何か方法がないもかと質問を上げさせて
頂いた次第です。

やはり、数値のまま、0.00と出力するのは無理ですよね・・・。
・ツリー全体表示

【77365】Re:CSV出力について
回答  ウッシ  - 15/8/3(月) 16:12 -

引用なし
パスワード
   こんにちは

必要な表示形式で一時シートを作成して、先の「test」のコードで
保存するのはダメでしょうか?

でなければ、100.00 も文字列として書き出すか。

Dim Tanka   As String '納価
Tanka = Range("A2").Text
・ツリー全体表示

【77364】Re:CSV出力について
質問  Masa  - 15/8/3(月) 15:58 -

引用なし
パスワード
   回答ありがとうございます。

一部省略していますが、下記のコードで作成しています。
-------------
  Dim Hidule  As String '日付
  Dim Tanka   As Double '納価

  Hidule = Format(Range("A1").Value, "yyyymmdd")
  Tanka = Range("A2").Value

  Write #FileNo, Hiduke, Tanka
--------------
A1:
 2015/08/01→"20150801"で出力したい ==> 問題なし
A2:
 100.00→100.00で出力したい ==> 100となってしまう
 0もしくは""→0.00で出力したい ==> 0となってしまう
 100.05→100.05で出力したい ==> 問題なし

小数部が0の場合に整数部だけで出力されてしまうため
何か方法はないかと悩んでいます。

良い方法はありますでしょうか。
宜しくお願い致します。
・ツリー全体表示

【77363】Re:CSV出力について
回答  ウッシ  - 15/8/3(月) 15:38 -

引用なし
パスワード
   こんにちは

どのようなコードですか?

シートをそのまま保存するなら、

Sub test()
  Sheets("Sheet1").Copy
  ActiveWorkbook.SaveAs Filename:="C:\temp\test.csv", _
    FileFormat:=xlCSV, CreateBackup:=False
  ActiveWorkbook.Save
  ActiveWindow.Close False
End Sub

これ位でも出来ますけおd。
・ツリー全体表示

【77362】CSV出力について
質問  Masa  - 15/8/3(月) 15:26 -

引用なし
パスワード
   EXCEL VBAにてCSVファイルを出力します。
出力項目に数値(少数以下2桁)があり、””or 0の場合、
0.00で出力したいのですが、0となってしまいます。
何か方法はありますでしょうか。

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

【77361】Re:指定期間の絞り込み
発言  kanabun  - 15/7/30(木) 17:05 -

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

>D列に「日付」データが入っています。
>F2に開始日、G2に終了日が入っています。

AdvancedFilterと同じで フィルターで日付を抽出するには
シリアル値で範囲を指定してください。
そうすることで、日付(という数値)を セルの書式の影響を受けず
フィルタリングできます。

Private Sub Cmd期間_Click()
 Dim 開始日 As Long  '★シリアル値
 Dim 終了日 As Long  '★シリアル値
 
 開始日 = Worksheets("集計").Range("F2").Value2 '★シリアル値
 終了日 = Worksheets("集計").Range("G2").Value2 '★シリアル値
 
 Worksheets("集計").Range("A3:L2000").AutoFilter Field:=4, _
  Criteria1:=">=" & 開始日, _
  Operator:=xlAnd, _
  Criteria2:="<=" & 終了日
End Sub
・ツリー全体表示

【77360】Re:指定期間の絞り込み
お礼  なつ  - 15/7/30(木) 17:03 -

引用なし
パスワード
   Jakaさん、ご教授いただき、ありがとうございます。
上手く行きました!
・ツリー全体表示

【77359】Re:指定期間の絞り込み
発言  Jaka  - 15/7/30(木) 16:58 -

引用なし
パスワード
   すみません。
2007だと、日付が数式で表示されていると拾わなかった。

最近、エクセルをいじっていなかったので・・・。
97、2000、2002、2003の頃は拾えていたような???

日付が数式で無く直接入力なら、表示形式には万能だと思います。
ろくに確認してないけど。
・ツリー全体表示

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