Excel VBA質問箱 IV

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

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


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

【80102】Re:右ダブルクリックした際に今日の日付...
発言  γ  - 18/8/12(日) 22:00 -

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

既に指摘があるように、
ExcelVBAには右ダブルクリックというイベントプロシージャーは無いので、
どうしても右ダブルクリックで無いと困るというなら、
「マウス 左右反転」などで検索して、
左右を反転する設定にするより無いです。
・ツリー全体表示

【80101】Re:右ダブルクリックした際に今日の日付...
発言  マナ  - 18/8/12(日) 20:22 -

引用なし
パスワード
   ▼ヒロポン さん:

>右クリックでは実行できないんでしょか?
>希望としてどの場所のセルを右ダブルクリックしても実行できる様にはできないのでしょうか?

右クリック?
右ダブルクリック?

どんなイベントプロシージャが用意されているか確認して
使えそうなものを選ぶとよいです。
ht tp://home.att.ne.jp/zeta/gen/excel/c04p59.htm
・ツリー全体表示

【80100】Re:右ダブルクリックした際に今日の日付...
お礼  ヒロポン  - 18/8/12(日) 15:08 -

引用なし
パスワード
   回答ありがとうございます。
実行はできましたが、
右クリックでは実行できないんでしょか?

希望としてどの場所のセルを右ダブルクリックしても実行できる様にはできないのでしょうか?
・ツリー全体表示

【80099】Re:右ダブルクリックした際に今日の日付...
発言  マナ  - 18/8/12(日) 13:15 -

引用なし
パスワード
   ▼ヒロポン さん:

A列を左ダブルクリックしたときに実行さされます。
(ウインドウ枠固定でA列が常時表示されている前提)

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  If Target.Column > 1 Then Exit Sub
  Cancel = True
  Application.Goto Cells(1, Day(Date) + 1)
End Sub
・ツリー全体表示

【80098】右ダブルクリックした際に今日の日付行(...
質問  ヒロポン  - 18/8/12(日) 12:24 -

引用なし
パスワード
   A1 2018        
A2 8          B2=DATE($A$1,$A$2,1)  C2=IF(B2>=$A$3,"",B2+1)
A3 =EOMONTH(B2,0)   B3=TEXT(B2,"aaa")    C3=TEXT(C2,"aaa")
A4 朝食 1000円    2000円
A5 昼食 2000円     3000円
A6 夕食 3000円    4000円

この表で食費を入力しているのですが毎日入力している訳ではなく1週間に1回ぐらいの頻度で入力しております、
その為アクティブのセルを探す所から始まりそれが毎回の事なのでストレスに感じます。
その為右ダブルクリックすると本日の日付行(2行目)のセルが選択されると楽に入力出来助かります。
VBAは全くの初心者です。
・ツリー全体表示

【80097】Re:計算式によるクロス集計方法について
発言  γ  - 18/8/12(日) 9:38 -

引用なし
パスワード
   ポイントは、
・「レポートのレイアウト」 を「表形式」にすること
・ code  name  unitの各フィールドの小計をなしにすること
でしょうか。

合計 / quantity                    
            201801 201802 201803 総計
ABCD01 A01  dozen  10   20       30
ABCD02 A02  kg   70           70
ABCD03 A03  Cs           50   50
総計          80   20   50   150

といった結果が得られます。(行、列の小計をなくすことも可能です)
色々な形式が可能ですから、再トライされるとよいでしょう。

ちなみに、こちらはVBA質問箱(Excel)なので、
基本的にはVBAの質問ということになりますね。
・ツリー全体表示

【80096】Re:計算式によるクロス集計方法について
質問  夜勤  - 18/8/11(土) 19:47 -

引用なし
パスワード
   マナさま
ご回答いだだき、ありがとうございます。
ピボットテーブルという機能を試してみました。
当方の間違いがあったかもしれませんが、複数項目のセットがうまくできませんでした。仕方がなく、計算式方式に方向転換しました。

▼マナ さん:
>▼夜勤 さん:
>
>>
>>以下の基本データがあります、Excelの関数を使って、クロス集計をするには
>>どうすれば、計算できるのでしょうか?
>
>エクセルには、ピボットテーブルという機能があります。
・ツリー全体表示

【80095】Re:計算式によるクロス集計方法について
発言  マナ  - 18/8/11(土) 8:31 -

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

>
>以下の基本データがあります、Excelの関数を使って、クロス集計をするには
>どうすれば、計算できるのでしょうか?

エクセルには、ピボットテーブルという機能があります。
・ツリー全体表示

【80094】計算式によるクロス集計方法について
質問  夜勤  - 18/8/10(金) 20:48 -

引用なし
パスワード
   こんばんは
 
 仕事上で、他システムからのExcelデータを基にクロス集計をかけたいですが、
やり方がわからなくて、投稿しました。

以下の基本データがあります、Excelの関数を使って、クロス集計をするには
どうすれば、計算できるのでしょうか?
ご教示いただけますうでしょうか。

基本データ
code  name  unit  SellingYYMM  quantity
ABCD01 A01  dozen 201801     10
ABCD01 A01  dozen 201802     20
ABCD02 A02  kg   201801     30
ABCD02 A02  kg   201801     40
ABCD03 A03  Cs   201803     50
.
.

クロス集計結果
code  name  unit  201801  201802  201803
ABCD01 A01  dozen 10    20
ABCD02 A02  kg   70
ABCD03 A03  Cs             50
・ツリー全体表示

【80093】Re:数値をテキストに変換する
発言  Jaka  - 18/8/7(火) 17:34 -

引用なし
パスワード
   ああ、String があったんだ・・・

MsgBox Format(123, String(10, "0"))
・ツリー全体表示

【80092】Re:再計算のやり方
発言  Jaka  - 18/8/7(火) 17:24 -

引用なし
パスワード
   追加

F2 キー、Enter でも、再計算されると思います。
(セルの内容は同じ、つまり編集状態にして、Enterキーを押すだけで編集されたと認識します。)

セルの挿入削除でも再計算されます。
・ツリー全体表示

【80091】Re:再計算のやり方
発言  Jaka  - 18/8/7(火) 17:11 -

引用なし
パスワード
   ▼nana さん:
>入力したセルを減らした際に再計算されません。

すみません。
状況がよく解ってません。
セルの内容を変えると再計算されるはずですが???
何も入ってないセルにDeleteキーを押しても再計算はされると思いますけど。
2013とか2016で変わったかもしれないけど??

この辺かな?

ht tps://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/worksheet-calculate-method-excel
・ツリー全体表示

【80090】Re:数値をテキストに変換する
発言  Jaka  - 18/8/7(火) 17:00 -

引用なし
パスワード
   MsgBox Format(123, "0000000")

MsgBox Format(123, Application.Rept("0", 10))

???
・ツリー全体表示

【80089】再計算のやり方
質問  nana  - 18/8/7(火) 15:19 -

引用なし
パスワード
   VBA初心者です。

A1〜G1まで時刻データが入力されています。
もしA1〜G1までのセルの個数が特定の値を超えてしまう場合にMsgboxを表示されるように設定しましたが、
入力したセルを減らした際に再計算されません。

どうしたら再計算されるようになりますでしょうか。

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

【80088】数値をテキストに変換する
質問  M  - 18/8/7(火) 10:42 -

引用なし
パスワード
   指定したセルの数字を10桁、6桁、7桁にそれぞれ変換するマクロは
どうしたらよいでしょうか。
ご教授いただければ幸いです。
・ツリー全体表示

【80087】Re:'0487.65E-03を演算可能な数字に変換...
お礼  RyanKey  - 18/8/6(月) 15:14 -

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

こんな簡単にできるんですね…
MID関数、かなり便利そうなので覚えておきます

また機会があればその時はよろしくお願いします
・ツリー全体表示

【80086】Re:'0487.65E-03を演算可能な数字に変換...
回答  よろずや  - 18/8/6(月) 14:18 -

引用なし
パスワード
   A1 に「DCV_ 0487.65E-03」が入っているとして、
B1 に「=MID(A1,FIND(" ",A1)+1,255)*1」
で普通に、「0.48765」になりますけど。

Excel2010
・ツリー全体表示

【80085】'0487.65E-03を演算可能な数字に変換する...
質問  RyanKey  - 18/8/6(月) 12:10 -

引用なし
パスワード
   GPIBを用いて計測データを読み取りEXCELに出力するプログラムを作成しています。
ibird関数を使うことでDCV_ 0487.65E-03というように値を読むことはできるのですが
この値は文字列のようで、spilt関数を使って分離し「0487.65E-03」の部分だけ
EXCEL上に出力しても'0487.65E-03と、演算するには不適切な書式になり困っています。

'(シングルコーテーション)を取り除くために1をかける、書式を変更する等はやってみたのですが、'を消すことができても演算可能な形にすることはできませんでした。(この数式には誤りがありますのエラーが出る)
0487.65E-03の部分を演算可能な数字にすることはできないでしょうか。

解決法の一つとしてセルごとではなく、 0487.65E-03という部分のみを手動でコピーして空白のセルに貼り付ければ、0.48765と数字として認識し、演算可能になります
ただ、これは非常に手間と時間がかかるためあまりやりたくありません。

何か良い方法、上記の解決法を自動化できるようなプログラムをご存知の方がおられましたら、教えていただけると幸いです。

使用しているEXCELは2016です。

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

【80084】Re:教えてくささい。
お礼    - 18/8/5(日) 19:27 -

引用なし
パスワード
   ▼γ さん:
>こんな風にしてみたら。
>
>Sub test()
>  Dim 検索値 As Variant
>  Dim 検索結果 As Range
>  Dim 最初結果 As Range
>  Dim 結果範囲 As Range
>  Dim データ範囲 As Range
>  
>  Set データ範囲 = ActiveSheet.UsedRange
>  
>  検索値 = InputBox("検索する文字列を入力してください")
>  If 検索値 = "" Then
>    MsgBox "検索がキャンセルされました"
>    Exit Sub
>  End If
>  
>  Set 検索結果 = データ範囲.find _
>        (What:=検索値, LookIn:=xlValues, LookAt:=xlWhole, _
>        SearchOrder:=xlByColumns, MatchCase:=True, MatchByte:=True)
>  If 検索結果 Is Nothing Then
>    MsgBox 検索値 & "はみつかりません。"
>    Exit Sub
>  Else
>    Set 最初結果 = 検索結果
>    Set 結果範囲 = 検索結果
>  End If
>  
>  Do
>    Set 検索結果 = データ範囲.FindNext(検索結果)
>    If 検索結果.Address = 最初結果.Address Then
>      Exit Do
>    Else
>      Set 結果範囲 = Union(結果範囲, 検索結果)
>    End If
>  Loop
>  MsgBox 検索値 & "は" & 結果範囲.Count & "件みつかりました。" & vbCrLf & _
>      "セルを黄色で塗りつぶします。"
>  結果範囲.Interior.Color = RGB(255, 255, 0)
>
>End Sub
>
>●インデントをしっかりつけることは、あなたが考えている以上に大事なことですよ。


返信ありがとうございます。
自分の勉強不足を非常に痛感しております。
返信していただいたvbaを実行させていただきました。
非常に満足しています。
本当にありがとうございました。
今後またわからない事が多々あると思いますので、
よろしくお願いします。
・ツリー全体表示

【80083】Re:教えてくささい。
回答  γ  - 18/8/5(日) 18:43 -

引用なし
パスワード
   こんな風にしてみたら。

Sub test()
  Dim 検索値 As Variant
  Dim 検索結果 As Range
  Dim 最初結果 As Range
  Dim 結果範囲 As Range
  Dim データ範囲 As Range
  
  Set データ範囲 = ActiveSheet.UsedRange
  
  検索値 = InputBox("検索する文字列を入力してください")
  If 検索値 = "" Then
    MsgBox "検索がキャンセルされました"
    Exit Sub
  End If
  
  Set 検索結果 = データ範囲.find _
        (What:=検索値, LookIn:=xlValues, LookAt:=xlWhole, _
        SearchOrder:=xlByColumns, MatchCase:=True, MatchByte:=True)
  If 検索結果 Is Nothing Then
    MsgBox 検索値 & "はみつかりません。"
    Exit Sub
  Else
    Set 最初結果 = 検索結果
    Set 結果範囲 = 検索結果
  End If
  
  Do
    Set 検索結果 = データ範囲.FindNext(検索結果)
    If 検索結果.Address = 最初結果.Address Then
      Exit Do
    Else
      Set 結果範囲 = Union(結果範囲, 検索結果)
    End If
  Loop
  MsgBox 検索値 & "は" & 結果範囲.Count & "件みつかりました。" & vbCrLf & _
      "セルを黄色で塗りつぶします。"
  結果範囲.Interior.Color = RGB(255, 255, 0)

End Sub

●インデントをしっかりつけることは、あなたが考えている以上に大事なことですよ。
・ツリー全体表示

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