[[20161013131822]] 『有給休暇取得日一覧表 自動的にセルを結合する方』(ひろ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『有給休暇取得日一覧表 自動的にセルを結合する方法』(ひろ)

いつもお世話になっております。
今回もよろしくお願いします。

有給休暇取得日一覧表を作成しています。
有給は半日ごとに取得でき、半日(0.5)か終日(1)のみです。
一覧表と入力シートを用意しました。

取得日は、半日ごとに2列に分かれています。

A    B       C D     E F   
名前 有給日数  取得日1 取得日2  ・・・取得日20
 

セルの結合について

(例1)入力シートに 4/1(0.5) と入力すると、
    繁栄させる側のシート C に 4/1 と入力さる。

(例2)入力シートに 4/1 と入力すると、 
    繁栄させる側のシート C と D が結合され、結合されたセルに     4/1 と入力される。

という仕様は可能ですか?

個人ごとに 取得日20まで積み上げ式に表示させていです。

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

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 ※ 勘違いで削除しました。
 
(GobGob) 2016/10/13(木) 14:15

もう少しレイアウトを具体的に説明してください。さっぱり判りません。

とりあえず、やりたいことは、半休で1セル使うけど、全休なら1つだから、2セル結合して表現したい、という事でしょうか? 数式では実現できないので、マクロ利用になるかと思いますが、どうやって実行します? セルに入力される度に自動実行? それとも、ボタンを配置しておいて、押すと実行?

もひとつ言うと、全休でもいちいちセル連結なんてしないほうが良いと思いますよ? そのシートをどうやって集計するのですか? それは連結したりしなかったりする事に対応していますか?
(???) 2016/10/13(木) 14:17


入力シートに入力した時点で自動的に実行させたいです。

セルの連結と集計は別々に実行させています。この連結は、掲示する為のものです。

よろしくお願いします。
(ひろ) 2016/10/13(木) 14:20


せめて何列目に入力するのかが知りたかったですが、情報がないので、全てのセルに適用する例なぞ。
入力領域指定が必要な場合は、ご自身でIntersectメソッドについて調べて、判定追加してみてください。

 Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If 5 < Len(Target.Value) Then
        If Right(Target.Value, 5) = "(0.5)" Then
            Target.Value = Left(Target.Value, Len(Target.Value) - 5)
            Target.Resize(1, 2).MergeCells = False
        Else
            Target.Resize(1, 2).MergeCells = True
        End If
    Else
        Target.Resize(1, 2).MergeCells = True
    End If
    Application.EnableEvents = True
 End Sub
(???) 2016/10/13(木) 14:37

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.