エクセルは操作したことのない門外漢ですので、次のようなアイデアしか思いつきませんでした。
そういうことで参考程度にされて下さい。
foods.txt
F0001:AAA
F0002:BBB
F0003:CCC
それは、このようなテキストファイルを利用する方法です。
先ず、メモ帳でF0001~F9999の整理番号を付けてコロン(:)に続けて食品名を入力して下さい。
次に、それを保存して下さい。
<ブック起動時に読み込む仕掛け>
次のコードを標準モジュールに登録して下さい。
Public strFoods() As String
Public Sub Auto_Open()
On Error GoTo Err_Auto_Open
Dim fso As Object
Dim strTexts() As String
Set fso = CreateObject("Scripting.FIleSystemObject")
strFoods() = Split(fso.OpenTextFile("C:\Temp\Foods.txt").ReadAll, vbCrLf)
Exit_Auto_Open:
Exit Sub
Err_Auto_Open:
MsgBox Err.Description & "(Auto_Open)", vbExclamation, " 関数エラーメッセージ"
strFoods() = Split("")
Resume Exit_Auto_Open
End Sub
Public Function CutStr(ByVal TEXT As String, _
ByVal Separator As String, _
ByVal N As Integer) As String
Dim strDatas() As String
strDatas = Split("" & Separator & TEXT, Separator, , 0)
CutStr = strDatas(N * Abs((N <= UBound(strDatas))))
End Function
Public Function LenH(ByVal TEXT As String) As Integer
LenH = LenB(StrConv(TEXT, vbFromUnicode))
End Function
<シート入力を翻訳する仕掛け>
シートモジュールに次のコードをコピペして下さい。
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Dim I As Integer
Dim N As Integer
Dim strValue As String
Dim strKey As String
strValue = Target.Value
strKey = CutStr(strValue, ":", 1)
If UCase(Left$(strKey, 1)) = "F" And (LenH(strKey) = 5 And Len(strKey) = 5) Then
N = UBound(strFoods())
For I = 0 To N
If StrComp(strKey, Left$(strFoods(I), 5), vbTextCompare) = 0 Then
Target.Value = CutStr(strFoods(I), ":", 2)
Exit For
End If
Next I
End If
End Sub
見たら判りますが、先頭がFで長さ5文字が入力されると翻訳ルーチンが働きます。
登録データに合致するまで翻訳を試みます。
ですから、
F0001:AAA
F0003:CCC
F0004:CCC
と非連番であっても構いません。
※なお、食品名列の隣にカロリーを表示するように改造することも簡単だと思います。
お礼
回答を頂いていながら、御礼が遅くなっていまして申し訳有りません。土日しかパソコンに向かう時間がなくて、今日も(糖尿病食管理表)完成に頑張っています。ご回答で短縮機能が出来るという事が分り、完成に意欲が増しました。遅くなりましたが、厚くお礼申し上げます。未だ、この段階にはいっていませんが、現在、食品のカロリー、栄養素の参考書等で研究しながらの入力中で、自分にあった1日の献立、運動等の指示書がパソコンを使って簡単に出来るというのが目的です。今のところは毎日食べたものを記録し、朝、空腹時血糖を計っていますが手書きは大変です。ちなみに、今までの食材を交換したり、運動したりと工夫して一時は空腹時血糖300mg/dl ヘモグロビンA1c9.8と即入院状態のところ、現在のところ120mg~160mg/dl ヘモグロビンA1c6.2に改善していますが、まだまだです。これが完成して毎日便利に活用でき、食養生も無理なく継続できれば更に良い結果が出るかなと思っています。本当に有難うございました、まだまだ、疑問のところが出てくると思いますが、今後もご教授宜しくお願いいたします。