VBAで時刻を文字列変換し、hh:mm 形式で表示させるため、
Columns(2).NumberFormatLocal = "hh:mm;@" として文字列に変換しましたが、
セル上では、hh:mm で表示されていても、数式バーでは、hh:mm:ssで表示されて
しまいます。
数式バー上でも、hh:mmで表示させるためには、どうしたらよいでしょうか?
該当のセルの表示形式を文字列にしてから、
17:04と入力すれば実現できそうです。

Columns(2).NumberFormatLocal = "hh:mm;@"で文字列になっていないですか??
ちゃんと検証していませんが、たぶん下記だと思います。
Columns(2).NumberFormatLocal = "@"
下記で検証したらうまくいってそう。
Columns(2).NumberFormatLocal = "@"
Range("B2").Value = "17:40"
時刻は入力済みで、数式バーに表示されている値を変更したいということでしょうか。
だとしたら、書式設定(NumberFormatLocal)の設定では無理です。
書式は見た目を変更するだけですので。
ループ処理で各セルの時刻データを秒部分を切り捨てる処理をする必要があります。
あと、時刻データを文字列にしてしまうのは、後々活用しにくくなるのでお勧めできません。
Columns(2).NumberFormatLocal = "hh:mm"
Dim r As Range
For Each r In Intersect(Range("B1").CurrentRegion, Columns(2))
r.Value = TimeSerial(Hour(r.Value), Minute(r.Value), 0)
Next

Intersect(Range("B1").CurrentRegion, Columns(2))
が、何を意味しているのか分かりません。
CurrentRegion, Columns(2)なので、結局は、B列をrに入れているということでしょうか?
For Each の意味を理解してますか。
Intersect(Range("B1").CurrentRegion, Columns(2)) でB列のデータ範囲のセルをループして、秒を切り捨てた値を代入しています。
